1

NSDateComponents を NSUserDefaults に保存したいので、最初に NSData でラップする必要があります。これを行うにはどうすればよいですか?

または、NSDateComponent をユーザーのデフォルトに格納する別の方法はありますか?

4

1 に答える 1

3

NSDateComponentsNSCodingプロトコルに準拠しているため、 NSKeyedArchiver/NSKeyedUnarchiverを使用してジョブを実行できます。サンプルコードは次のとおりです。

NSDateComponents *cmp = ...;
//Encoding
NSMutableData *data= [NSMutableData data];

NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];

[archiver encodeObject:cmp];
[archiver finishEncoding];

//Decoding
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];

NSDateComponents *decoded = [unarchiver decodeObject];

[unarchiver finishDecoding];
于 2012-07-19T22:07:27.917 に答える