【发布时间】:2013-04-22 16:20:25
【问题描述】:
我正在使用 Core Data 编写一个应用程序,该属性在一个实体中:
@property (nonatomic, retain) NSString * mesa;
我在传递 JSON 处理字典中的值时遇到问题:
local.mesa =[locales [0] valueForKey:@"mesa"];
我收到此错误:
'NSInvalidArgumentException',原因:'不可接受的属性值类型:property = "mesa";所需类型 = NSNumber;给定类型 = __NSCFString;价值 = 沙龙 2。'
这向我表明所需的类型是 NSNumber,但该属性在 xcdatamodel 和类中声明为 NSString。
有可能是属性的第一个声明是NSNumber,他好像没变。
有什么想法吗?
【问题讨论】:
-
确保它是模型中的NSString,然后重新生成NSManagedObject文件。你不应该直接操作核心数据生成的 NSmanagedObject 文件
-
另外,如果您更改了模型中某个项目的数据类型,您应该在再次运行之前清理构建并删除所有现有的数据库文件。
-
谢谢,但是如何重新生成 NSManagedObject 文件呢?我已经清理并构建了产品,但我没有删除任何数据库
-
我解决了这个问题,从模拟器中卸载应用程序,然后按照这个线程:stackoverflow.com/questions/12617585/… 重新创建正确的数据模型层次结构。谢谢大家
-
如果应用在应用商店中怎么办?用户只会更新应用程序而不是删除它。这种情况如何解决?
标签: objective-c xcode core-data