Iphone 使用NSKeyedArchiver和NSData通过蓝牙发送UIImage

Iphone 使用NSKeyedArchiver和NSData通过蓝牙发送UIImage,iphone,nsdata,nskeyedarchiver,Iphone,Nsdata,Nskeyedarchiver,我想知道在使用NSKeyedArchiver将UIImage编码为NSMutableData后,是否可以通过蓝牙发送UIImage。这就是我的想法: NSMutableData *data = [[NSMutableData alloc] init]; NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; [archiver encodeObject:[UIImage

我想知道在使用NSKeyedArchiver将UIImage编码为NSMutableData后,是否可以通过蓝牙发送UIImage。这就是我的想法:

NSMutableData *data = [[NSMutableData alloc] init];

NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:[UIImage imageNamed:"test.png" forKey:kImageKey];

[archiver finishEncoding];

您不能像那样归档UIImage实例。您必须首先创建外部表示,如PNG或JPG。例如,您可以使用UIImagePNGRepresentation函数来实现这一点。它将返回一个NSData实例,其中包含PNG格式的压缩图像。该NSData实例可以与NSArchiving一起使用。

您不能像这样归档UIImage实例。您必须首先创建外部表示,如PNG或JPG。例如,您可以使用UIImagePNGRepresentation函数来实现这一点。它将返回一个NSData实例,其中包含PNG格式的压缩图像。NSData实例可以与NSArchiving一起使用。

如果我只是查看UIImage的类引用,我想我应该知道这一点。谢谢是否可以将NSObject子类化以创建一个包含图像、名称、编号等的类并将其存档?是的。但我认为使用字典也很好。如果你有两个不同版本的应用程序,会更安全一些。或者至少更容易处理。不是真的。UIImage符合NSSecureCoding,NSSecureCoding继承了NSCoding,因此它肯定可以这样编码。@Mike总是这样吗?我的答案是5年前的。我不记得当时SDK是什么样子。我想如果我只是查看UIImage的类引用,我就会知道这一点。谢谢是否可以将NSObject子类化以创建一个包含图像、名称、编号等的类并将其存档?是的。但我认为使用字典也很好。如果你有两个不同版本的应用程序,会更安全一些。或者至少更容易处理。不是真的。UIImage符合NSSecureCoding,NSSecureCoding继承了NSCoding,因此它肯定可以这样编码。@Mike总是这样吗?我的答案是5年前的。不记得当时SDK是什么样子的。