我開始學習如何使用核心數據爲我的應用程序,我有一個關於setter和getter與NSManagedObject
問題。遷移從自制模型的核心數據模型:二傳手/吸氣問題
在我的老款我是用這個語法來聲明屬性:
@interface MyModel : NSObject
{
MyAttributeOfClass *_myAttributeOfClass
}
- (void)setMyAttributeOfClass:(MyAttributeOfClass *)anAttributeOfClass;
- (MyAttributeOfClass *)myAttributeOfClass;
我知道,我可以用@synthesize
做這個東西。但是,如果使用@synthesize
具有公共屬性,如:
@property (nonatomic, strong) MyAttributeOfClass *myAttributeOfClass;
開發人員可以繞過我的setter和直接做這個設定值myAttributeOfClass
:myAttributeOfClass = bar;
。我不想允許這種行爲,因爲我使用setter來執行操作。如果此操作未完成,我的課程將不再正常工作。
所以,現在我遷移我的舊模式,從NSManagedObject
子類核心數據模型。
但是,當我生成從我的數據模型類,屬性以這種方式聲明:
@property (nonatomic, retain) MyAttribute *myAttribute;
因此,開發人員可以設置該屬性的值,而無需調用setter:myAttribute =欄;我想禁止它。
有什麼建議嗎?
謝謝!
哦!我不認爲這個object.myAtteibute = bar叫我的自定義setter。謝謝你的回答! –