2010-08-20 3 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

Доступны ли «NSUnarchiver» и «NSArchiver» на iOS? –

+0

Да, /System/Library/Frameworks/Foundation.framework –

0

Мой образ хранится в 6-м столбце в виде NSData, сначала я должен получить эти данные в объект 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]; 
Смежные вопросы