2

Bluetoothを使用して2つのデバイス間でデータを転送しようとしています。デバイス A はカスタム NSObject を保持しています。デバイス B は、このカスタム NSObject を NSData として受信しています。

受信した NSData をカスタム NSObject にデコードする最良の方法は何ですか?

ありがとう!

4

1 に答える 1

10

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];
于 2013-02-24T06:42:34.940 に答える