2010-08-20 132 views
1

我正在開發一個應用程序,我將其轉換爲NSData並將其轉換爲圖像並顯示在圖像視圖中。現在我想保存這些數據並在UIImageView中再次顯示。 我用NSUserDefaults保存NSData和再次檢索這些數據並將其轉換爲圖像和圖像顯示它view.But我沒有得到的圖像back.my代碼如下:如何將nsdata轉換爲圖像?

//for saving nsdata using nsuserdefaults method:- 
NSUserDefaults *defsMVC=[NSUserDefaults standardUserDefaults]; 
[defsMVC setObject:stateMVC forKey:@"MapImageObject"]; 

//for retrieving nsdata from nsuserdefaults and display it in imageview 
NSUserDefaults *defsMVC=[NSUserDefaults standardUserDefaults]; 

NSData *stringmapdata=[defsMVC dataForKey:@"MapImageObject"]; 

UIImageView *imageView=[[UIImageView alloc]initWithFrame:CGRectMake(0, 6, 320,415)]; 
UIImage *image = [UIImage imageWithData:stringmapdata]; 
[imageView setImage:image]; 
[image release]; 
[self.view addSubview:imageView]; 
[self.view sendSubviewToBack:imageView]; 
[imageView release]; 

回答

2

我不認爲你應該將數據存儲在用戶默認值中,嘗試將其存儲在像「yourimage.png」這樣的文件中,然後你可以簡單地執行[[NSImage alloc] initWithConentsOfFile:path];

而且其保存在用戶違約之前,請嘗試使用NSArchiver:

NSImage *image = [NSUnarchiver unarchiveObjectWithData:[[NSUserDefaults standardUserDefaults] objectForKey:@"someKey"]]; 

併爲它歸檔到用戶的默認值:

[[NSUserDefaults standardUserDefaults] setObject:[NSArchiver archivedDataWithRootObject:image] forKey:@"someKey"]; 

愛是愛可可=)

+0

iOS上有'NSUnarchiver'和'NSArchiver'嗎? – 2010-08-20 07:55:16

+0

是/系統/庫/框架/基礎框架 – 2010-08-20 09:24:37

0

我的形象以NSData的形式存儲在第6列中,首先我必須將該數據獲取到NSData對象中。將該NSData轉換爲圖像。

data = [[NSData alloc] initWithBytes:sqlite3_column_blob(statement, 6) 
           length:sqlite3_column_bytes(statement, 6)]; 
img = [UIImage imageWithData:data]; 
imgdata = [[NSMutableArray alloc]initWithObjects:img, nil];