2013-02-24 107 views
2

我試圖使用藍牙在2個設備之間傳輸數據。 設備A正在保存自定義NSObject。 設備B正在將此自定義NSObject作爲NSData接收。自定義NSObject的NSData

將接收到的NSData解碼爲自定義NSObject的最佳方法是什麼?

謝謝!

回答

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]; 
+3

你應該怎麼加使用'NSKeyedArchiver'將對象編碼爲'NSData'。 – rmaddy 2013-02-24 06:46:33

相關問題