Rya*_*ith 6 xcode core-data nsmanagedobject ios swift
Xcode 6有很多错误.但我不太确定这是不是一个bug.可能不是因为这是我刚刚学习的东西.
我的问题是,每当我尝试实例化NSManagedObject的子类时,我都没有选择将entity: NSEntityDescription和NSManagedContext: insertIntoManagedContext参数传递给构造函数,Xcode在调用中说"额外参数'实体'"
我从头开始创建一个新的Xcode项目,看看我是否可以在一个较小的,最小的项目中重新创建问题.
ToDoList.Item Item在数据模型检查器中设置为实体类.
这是代码:
override func viewDidLoad() {
super.viewDidLoad()
let appDel: AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
let context: NSManagedObjectContext = appDel.managedObjectContext!
let ent = NSEntityDescription.entityForName("Item", inManagedObjectContext: context)!
//compiler complains here
var item = Item(entity: ent, insertIntoManagedObjectContext: context)!
}
Run Code Online (Sandbox Code Playgroud)
这是子类:
import UIKit
import CoreData
class Item: NSManagedObject {
@NSManaged var title: String
@NSManaged var completed: Bool
}
Run Code Online (Sandbox Code Playgroud)
所有帮助表示赞赏.
刚遇到同样的问题:核心数据实体的Init方法不可用
显然我们必须实施
init(entity: NSEntityDescription, insertIntoManagedObjectContext context, NSManagedObjectContext?)
Run Code Online (Sandbox Code Playgroud)
我们的自定义NSManagedObject类中的方法.所以只需添加
override init(entity: NSEntityDescription, insertIntoManagedObjectContext context: NSManagedObjectContext?) {
super.init(entity: entity, insertIntoManagedObjectContext: context)
}
Run Code Online (Sandbox Code Playgroud)
到您的实体类,它将工作.
| 归档时间: |
|
| 查看次数: |
4892 次 |
| 最近记录: |