我通過核心數據創建了幾個類。我需要在運行時爲其中一個類添加其他@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來聲明屬性。我可以在哪裏合成它們? –