ios - NSManagedObject setter 给我 [ MyObject setName :]: unrecognized selector sent to instance

标签 ios objective-c core-data

我通过 xcode 编辑器菜单创建了一个 NSManagedObject。我的对象只有一个属性“名称”。当我尝试设置属性时,我得到“[MyObject setName:]: unrecognized selector sent to instance”

MyObject *thing = [MyObject objectFromJSONDictionary:obj];
thing.name = obj; <-- ERROR HERE

我已检查我的属性“名称”在 CD 中与在我的类(class)中相同。我的接口(interface)属性也是一样的。和我的动态属性是一样的。

@property (nonatomic, retain) NSString * name;

@dynamic name;

有什么建议吗?是的,我已经清除了 CD 对象,清理了我的项目,并再次在 CD 中创建了它。同样的问题?

最佳答案

来自NSManagedObject类(class)引用:

If you instantiate a managed object directly, you must call the designated initializer (initWithEntity:insertIntoManagedObjectContext:).

还有一个方便的方法

+[NSEntityDescription insertNewObjectForEntityForName:inManagedObjectContext:]

可用于创建托管对象。

Core Data 对象的访问器方法是在运行时动态创建的, 所以此限制的一个原因是必须知道实体描述

您可以创建一个具有nil 上下文的对象,稍后将其添加到托管对象上下文中,例如:How can I associate an NSManagedObject to the context after it has been initialised?

关于ios - NSManagedObject setter 给我 [ MyObject setName :]: unrecognized selector sent to instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23835525/

相关文章:

ios - 使用 NSStream 中的套接字同时连接到多个服务器

ios - MKPlacemark() 创建保留周期

ios - AVPlayer 无法移除时间观察者

ios - Playground 执行终止,因为 Playground 进程意外退出

ios - 让 AVAudioEngine 重复一个声音

objective-c - 将日期转换为正确的格式

objective-c - 带有图像和标题的 iOS 7 BarButtonItem

iOS 应用内购买内容集成

ios - 核心数据实体在启动之间不保存

ios - 快速传递参数?