2012-05-09 70 views
0

通過閱讀Apple的文檔here,示例代碼將原始訪問器和增變器聲明爲分類中的單獨方法。是否可以使用@property來聲明原語?這樣做有缺點嗎?它似乎可以節省鍋爐板代碼,但是當以這種方式進行聲明時,這些方法會產生性能影響嗎?什麼是可選屬性 - (強,非原子)?CoreData - 原始訪問器作爲屬性?

蘋果的示例代碼

@interface Department : NSManagedObject 

@property(nonatomic, retain) NSString *name; 

@end 

@interface Department (PrimitiveAccessors) 
- (NSString *)primitiveName; 
- (void)setPrimitiveName:(NSString *)newName; 
@end 

建議更改

@interface Department : NSManagedObject 

@property(nonatomic, retain) NSString *name; 

@end 

@interface Department (PrimitiveAccessors) 

@property (strong, nonatomic) NSString *primitiveName; 

@end 

回答

0

你應該自動生成你的核心數據實體類。你可以通過按下Editor菜單並選擇「創建NSManagedObject子類」來完成此操作。這將自動爲您的每個實體創建一個類,並且這些類將擁有您想要的屬性。

如果你想自定義這些類,我強烈建議你在一個類別中做。我建議這樣做,因爲您可能想回到數據模型並添加或刪除一個屬性,因此您必須生成新的子類。在這種情況下,您可能對子類進行的任何更改都將被覆蓋,這可能會很痛苦:)

+0

我更願意使用[mogenerator](https://github.com/rentzsch/mogenerator)進行此項工作。 –

+0

我也是,直到開箱即用這些東西的新版本的Xcode! :) –