ios - NSData 到自定义 NSObject

标签 ios objective-c nsdata nsobject

我正在尝试使用蓝牙在两台设备之间传输数据。 设备 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];

关于ios - NSData 到自定义 NSObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15049325/

相关文章:

ios - 在方法 iOS 中更新标签

ios - 我试图在不使用 Storyboard 的情况下使用 swift (Xcode) 将标题部分添加到我的个人资料页面

ios - 使用 NSPredicate 不精确/相似匹配过滤 NSArray?

ios - -[UITableView dequeueReusableCellWithIdentifier :forIndexPath:] error 断言失败

ios - 如何将unix时间戳转换为NSData对象?

nsdata - NSData 的 hash 方法的实现是如何工作的?

ios - 如何在 Windows 上调试 iPad Flash 应用程序?

ios - Apple 开发者注册 bundle ID

objective-c - 从 Cocoa 应用程序项目导出 XCode 中的 OSX 可执行文件

objective-c - 在 NSMutableData 的前面插入字节