- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有 2 个类(class)。我的 MainScreenViewController
和我的 DataFetch
。在 DataFetch 类中,我有一个函数 func loadDesserts(){...}
我在其中设置我的 RestKit 和 CoreData 实体/对象映射以及所有其他内容。
该函数是从 MainScreenViewController
调用的。但是当类被分配给一个常量时:let dataFetch = DataFetch()
它会抛出错误:
CoreData: error: Failed to call designated initializer on NSManagedObject class '_TtC9Kogekunst9DataFetch'
我得出的结论(虽然不是 100% 肯定)RestKit 不应该为这个问题负责。我认为我没有正确初始化 NSManagedObject。我试过实现
init(entity entity: NSEntityDescription!,
insertIntoManagedObjectContext context: NSManagedObjectContext!)
但我还没有设法让它工作,因为它给了我同样的错误。我尝试实现它的方式如下:
var context: NSManagedObjectContext = RKObjectManager.sharedManager().managedObjectStore.mainQueueManagedObjectContext
var entity = NSEntityDescription.entityForName("Dessert", inManagedObjectContext: context)
let dataFetch = DataFetch(entity: entity, insertIntoManagedObjectContext: context)
dataFetch.loadDesserts()
但这会抛出“致命 - 无法打开 Optional.none”。于是又卡住了。
有人可以指出我该做什么的正确方向吗?
克里斯
最佳答案
这绝对是 Core Data 的问题,而不是 RestKit 的问题。从外观上看,您设置的对象不是正确的类型,即 DataFetch
,或者对象是 nil
。因为你不能打开一个Optional.none
,所以你必须使用一个条件 setter :
var dataFetch: DataFetch?
var context: NSManagedObjectContext = RKObjectManager.sharedManager().managedObjectStore.mainQueueManagedObjectContext
var entity = NSEntityDescription.entityForName("Dessert", inManagedObjectContext: context)
if let dataFetchObject = DataFetch(entity: entity, insertIntoManagedObjectContext: context) as? DataFetch {
dataFetch = dataFetchObject
dataFetch.loadDesserts()
}
我昨晚也遇到了这个问题,这就是解决我的问题的方法(现在 :])。
关于ios - Swift 核心数据无法在 NSManged ObjectClass 上调用指定的初始值设定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24244102/
我有 2 个类(class)。我的 MainScreenViewController 和我的 DataFetch。在 DataFetch 类中,我有一个函数 func loadDesserts(){.
我是一名优秀的程序员,十分优秀!