2010-02-04 2 views
1

Мне было интересно, можно ли отправить UIImage через Bluetooth после его кодирования в NSMutableData, используя NSKeyedArchiver. Это то, что я имел в виду:Использование NSKeyedArchiver и NSData для отправки UIImage по bluetooth

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

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

[archiver finishEncoding]; 

ответ

5

Вы не можете архивировать UIImage экземпляры, как это. Сначала вам нужно создать внешнее представление, например PNG или JPG. Вы можете сделать это, например, с помощью функции UIImagePNGRepresentation(). Он вернет экземпляр NSData, содержащий сжатое изображение в формате PNG. Этот экземпляр NSData может использоваться с NSArchiving.

+0

Думаю, я знал бы это, если бы просто взглянул на ссылку на класс для UIImage. Благодаря! –

+1

Можно ли подкласс NSObject создать класс, содержащий изображение, имя, номер и т. Д. И архив? –

+0

Да. Я думаю, что использование словаря тоже отлично. И это несколько безопаснее, если у вас есть две разные версии приложения. Или, по крайней мере, легче справиться. –

Смежные вопросы