【发布时间】:2014-02-13 18:39:31
【问题描述】:
在我的项目中,我使用的是 coredata。其中一个实体有一个名为 newTotal 的属性,在其对应的 NSManagedObject 类中,属性声明类似于
@property (nonatomic, strong) NSString *newTotal;
如果我在 NSObject 子类中添加这样的属性,XCode 将显示类似的错误
error: property's synthesized getter follows Cocoa naming convention for returning 'owned' objects
但在 NSManaged 对象子类中,它没有显示错误,而是在访问属性时应用程序崩溃,类似于 EXC_BAD_ACCESS。
为什么 XCode 不显示错误但应用程序崩溃?这是 XCode/clang/LLVM 的错误吗?
我知道它与合成有关。 NSManagedObject 子类不合成其中的属性,但 @dynamic 指令只是告诉编译器 getter 和 setter 方法不是由类本身实现,而是由其他地方实现(如超类或将在运行时提供)。但我对此没有明确的想法。任何人都可以对这个问题给出一个清晰的想法吗?
【问题讨论】:
标签: objective-c core-data nsmanagedobject llvm-clang