2015-07-22 120 views
0

我想使用NSKeyedArchiver保存NSObject並保存其關聯NSArray使用NSKeyedArchiver保存關聯數組

用戶有很多技能(不超過6或7)。技能是NSObjects一個NSArrayNSCoding協議,在用戶模型

//User.h 
@property (strong, nonatomic) NSArray *skills; 

是用戶和技能是要在2個不同的.plist文件和技能與用戶ID檢索到的單獨保存?或者是包含在initWithCoderdecodeWithCoder方法中的技能數組?

回答

1

符合NSCoding協議的對象可以使用NSKeyedArchiver類保存到(並讀取)文件。

NSCoding

許多常見Objective-C類已經符合NSCoding。您可以保存任何這些類型的對象沒有做什麼特別的東西:

的NSArray NSData的

的NSDate

的NSDictionary

的NSNumber

的NSString

如果您不確定某個班級是否支持NSCoding,請檢查其班級文件。和的initWithCoder

對於定製類,則必須將encodeWithCoder方法添加到您的類以符合NSCoding協議。

Here you can get what you are looking for

+0

謝謝,我明白這些類型可以保存。我的問題是面向的:如何在符合NSCoding的類中保存一組符合NSCoding的NSObject?是否有2個完全獨立的實體,您可以獨立保存,還是保存在一次調用中? –

+0

單身電話是什麼意思? –

+0

我的意思是說,Skills Array不是用戶模型中的encodeWithCoder:和initWithCoder:方法的一部分嗎?有一個Users.plist和一個Skills.plist,所以模型應該單獨保存。應該使用userID字段檢索技能。沒有? –