2010-02-04 55 views
1

我想知道是否有可能在使用NSKeyedArchiver將它編碼到NSMutableData之後通過藍牙發送UIImage。這是我想到的:使用NSKeyedArchiver和NSData通過藍牙發送UIImage

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()函數來實現。它將返回包含PNG格式壓縮圖像的NSData實例。那個NSData實例可以和NSArchiving一起使用。

+0

我想我會知道,如果我只是看着UIImage的類參考。謝謝! –

+1

是否可以繼承NSObject創建一個包含圖像,名稱,編號等的類並將其歸檔? –

+0

是的。但是,我認爲使用字典也是非常好的。如果您有兩個不同版本的應用程序,則會更安全一些。或者至少比較容易處理。 –