Bluetoothを使用して2つのデバイス間でデータを転送しようとしています。デバイス A はカスタム NSObject を保持しています。デバイス B は、このカスタム NSObject を NSData として受信しています。
受信した NSData をカスタム NSObject にデコードする最良の方法は何ですか?
ありがとう!
Bluetoothを使用して2つのデバイス間でデータを転送しようとしています。デバイス A はカスタム NSObject を保持しています。デバイス B は、このカスタム NSObject を NSData として受信しています。
受信した NSData をカスタム NSObject にデコードする最良の方法は何ですか?
ありがとう!
encodeWithCoder:
カスタム オブジェクトのメソッドとメソッドを実装してinitWithCoder:
、NSData オブジェクトとの間でエンコードおよびデコードする方法を認識できるようにする必要があります。
- (void)encodeWithCoder:(NSCoder *)coder{
[coder encodeObject:self.property forKey:@"property"];
// all other properties
}
- (id)initWithCoder:(NSCoder *)decoder {
if (self = [super init]) {
self.property = [decoder decodeObjectForKey:@"property"];
// all other properties
}
return self;
}
次に、次を使用して NSData から NSObject にデコードします。
NSObject *object = [NSKeyedUnarchiver unarchiveObjectWithData:data];
逆に:
[NSKeyedArchiver archiveRootObject:object toFile:self.filePath];