2015-06-21 117 views
0

我有一個自NSManagedObject:迅速 - CoreData

import Foundation 
import CoreData 
@objc(Article) 

class Article: NSManagedObject { 

    @NSManaged var articleID: String 
    @NSManaged var isFavorite: Bool 
    init(entity: NSEntityDescription, insertIntoManagedObjectContext context: NSManagedObjectContext?, articleID: String, isFavorite: Bool) { 
     super.init(entity: entity, insertIntoManagedObjectContext: context) 
     self.articleID = articleID 
     self.isFavorite = isFavorite 
    } 

    override init(entity: NSEntityDescription, insertIntoManagedObjectContext context: NSManagedObjectContext?) { 
     super.init(entity: entity, insertIntoManagedObjectContext: context) 
    } 
} 

但我有錯誤,當我索引樹到一個新的條目添加到CoreData:

let articleEntity = NSEntityDescription.entityForName("Article", inManagedObjectContext: self.context!) 
let newArticle = Article(entity: articleEntity!, insertIntoManagedObjectContext: self.context!) 
newArticle.articleID = articleID 
newArticle.isFavorite = true 

使用未解決的標識符 '文章' 的

+0

你添加自定義NSManagedObject文件 「Article.swift」 的目標?檢查文件檢查器中的「目標成員」複選框... –

+0

我怎麼找不到添加它的方法? –

+0

如果關閉,只需切換「目標成員」即可。 –

回答

2

從上面的信息看來,您似乎沒有在配置t中爲實體添加類他coredata。確保您已經在.xcdatamodeld文件的配置中將類映射到實體。你可以檢查下面的例子。

enter image description here

+0

你是國王... –

+0

高興,它幫助:) –

0

類tableViewController:UIViewController的{

let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext 

@IBOutlet var number: UITextField! 
@IBOutlet var name: UITextField! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    // Do any additional setup after loading the view. 
} 

@IBAction func adddata(_ sender: UIButton) 
{ 
    var std = Hiren(context: context) 

    std.name = name.text 
    std.number = number.text 

    (UIApplication.shared.delegate as! AppDelegate).saveContext() 

    self.navigationController?.popViewController(animated: true)