我有一個模型類實現了NSCoding
協議。我有一個名爲dataModel
的屬性,它是這個類的一個實例。當我將此實例保存/加載到磁盤/從磁盤加載時,是否應該直接使用dataModel
或ivars的合成存取器?爲什麼?使用NSKeyedArchiver時,您應該使用訪問器還是ivars?
這是iOS 5及ARC下,我的屬性被聲明爲:
@property (strong, atomic) QardDataModel *dataModel;
爲了說明這將是這樣做的訪問方式:
-(void)saveData {
[NSKeyedArchiver archiveRootObject:self.dataModel toFile:[self saveFilePath]];
}
-(void)loadData {
self.dataModel = [NSKeyedUnarchiver unarchiveObjectWithFile:[self saveFilePath]];
}
有一種簡便方法稱爲saveFilePath
,它返回存檔文件的路徑。
保留?我認爲保留/發佈已被棄用或ARC? – lms
+1這兩種方式都沒有優勢,除了使用訪問器稍微簡單一些,並且更簡單==減少錯誤。打開ARC時,保留是語法錯誤,但並非所有人都在使用它。 –