保存する前に、 で終わる をNSArray
使用してルート オブジェクト (オブジェクト) をエンコードします。次に、UserDefaults を使用して を保存します。NSKeyedArchiver
NSData
NSData
データが必要な場合は、 を読み取りNSData
、 を使用NSKeyedUnarchiver
してオブジェクトに変換NSData
します。
毎回変換する必要があるため、少し面倒ですが、NSData
うまくいきます。
リクエストごとの例を次に示します。
保存:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSMutableArray *arr = ... ; // set value
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:arr];
[defaults setObject:data forKey:@"theKey"];
[defaults synchronize];
ロード:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData *data = [defaults objectForKey:@"theKey"];
NSArray *arr = [NSKeyedUnarchiver unarchiveObjectWithData:data];
配列の要素は
@interface CommentItem : NSObject<NSCoding> {
NSString *value;
}
の実装ではCommentItem
、次の 2 つのメソッドが提供されます。
-(void)encodeWithCoder:(NSCoder *)encoder
{
[encoder encodeObject:value forKey:@"Value"];
}
-(id)initWithCoder:(NSCoder *)decoder
{
self.value = [decoder decodeObjectForKey:@"Value"];
return self;
}
誰もがより良い解決策を持っていますか?
みんな、ありがとう。