我有两个不同的对象,我使用相同的上下文使用insertNewObjectForEntityForName
创建。
我的问题是对于第一个对象Event
,对象类型被正确定义为Event
,而对于应该是Credit
类型的第二个对象,对象类型是NSManagedObject
(这意味着我无法调用方法定义在派生类中)。使用'insertNewObjectForEntityForName'创建的对象的意外类类型
对象1:(预期)
Event *event = (Event*)[NSEntityDescription insertNewObjectForEntityForName:@"Event" inManagedObjectContext:context];
(gdb) po event
<Event: 0x62b3f00> (entity: Event; id: 0x62b3fb0 <x-coredata:///Event/tD3B27884-D303-4FDE-9D0F-D7DC009E2EBB18> ; data: {
...
})
对象2:(预期类是Credit
而不是NSManagedObject
)
Credit *credit = (Credit*)[NSEntityDescription insertNewObjectForEntityForName:@"Credit" inManagedObjectContext:context];
(gdb) po credit
<NSManagedObject: 0x629fd50> (entity: Credit; id: 0x628caf0 <x-coredata:///Credit/tD3B27884-D303-4FDE-9D0F-D7DC009E2EBB36> ; data: {
...
})
该死的 - 编辑...我把它错误地映射到了“Credits”。谢谢! – 2011-06-14 21:00:49
是的,如果你错过了,你不会得到任何警告。确保它始终正确的一种方式(显然除了测试)是在模型编辑器中从模型生成类。 – Thom 2011-06-14 21:35:28