我通过核心数据创建了几个类。我需要在运行时为其中一个类添加其他@property
。此@property
s负责下载进度,我不想将它们存储在Core Data DB中。我试图用一个单独的扩展类:将@propertys添加到核心数据类
@interface MyClass()
{
CGFloat _downloadProgress;
NSInteger _downloadErrorCounter;
BOOL _downloadAllStuff;
BOOL _downloadUserCanceled;
}
@property (nonatomic, assign) CGFloat downloadProgress;
@property (nonatomic, assign) NSInteger downloadErrorCounter;
@property (nonatomic, assign) BOOL downloadAllStuff;
@property (nonatomic, assign) BOOL downloadUserCanceled;
@end
但私有变量是不可见出的MyClass和@property
小号编译所有的权利,但在运行时我得到-[MyClass setDownloadErrorCounter:]: unrecognized selector sent to instance
。 任何人都可以建议我一些解决方案吗?
你在你的m文件中有@dynamic吗? – Mikael
你有没有'@合成'setters和getters?即使在现代Objective-C中,你也不需要'@ synthesize',看起来有必要在NSManagedObject子类中进行合成。编译器应该向你显示一个警告,你必须为你的属性定义一个setter和getter。 –
不,我没有。它是核心数据,所以我不能更改核心数据类。我使用一个新的文件MyClass_Download.h来声明属性。我可以在哪里合成它们? –