使用 RestKit-0.20.3 调用 NSManagedObject 类“XYX”上的指定初始化程序失败

Posted

技术标签:

【中文标题】使用 RestKit-0.20.3 调用 NSManagedObject 类“XYX”上的指定初始化程序失败【英文标题】:Failed to call designated initializer on NSManagedObject class ’XYX’ with RestKit-0.20.3 【发布时间】:2014-04-05 03:47:01 【问题描述】:

我正在使用 RestKit-0.20.3 并遇到问题 我在数据库中有一个学生表。要获取学生历史记录,请执行 get api 调用,像这样的 url https://xyz.com/api/getStudentHistory?x=a&y=b&z=c 带有一些参数。 使用这种方法

 [[RKObjectManager sharedManager] getObjectsAtPath:path parameters:param success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult)

在'path'参数传递-path = https://xyz.com/api/getStudentHistory

服务器发送响应时出现此错误。

CoreData: error: Failed to call designated initializer on NSManagedObject class ’Student’ 

之后我收到此消息并且应用程序崩溃。

Uncaught exception [<Student 0xd36b3e0> valueForUndefinedKey:]: the entity (null) is not key value coding-compliant for the key "notes".
     Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<Student 0xd36b3e0> valueForUndefinedKey:]: the entity (null) is not key value coding-compliant for the key "notes".'

【问题讨论】:

The entity (null) is not key value coding-compliant for the key "title" 的可能副本 基本 URL 和路径模式的组合需要在所有情况下创建一个有效的 URL,并且仅使用路径模式来匹配描述符。 是的@Wain,你是对的,我从那里得到了线索,我提到了。 【参考方案1】:

经过研发和花费大量时间从这里得到了线索 The entity (null) is not key value coding-compliant for the key "title"

只需将我的路径参数从 path = https://xyz.com/api/getStudentHistory 替换为 path = /api/getStudentHistory 在方法中

[[RKObjectManager sharedManager] getObjectsAtPath:path parameters:param success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult)

现在我的问题解决了……:)

【讨论】:

以上是关于使用 RestKit-0.20.3 调用 NSManagedObject 类“XYX”上的指定初始化程序失败的主要内容,如果未能解决你的问题,请参考以下文章

RKConnectionDescription 与 Restkit 0.20.3 不稳定

为每个动作保存上下文

如何将 ManagedObjectContext 与线程一起使用

CoreData 一对多只使用一个实体

核心数据合并行为

使用 iCloud 时使用 NSFetchedResultsController 的表开始为空