我使用 UserDefaults 将图片保存到 NSData,现在希望在 tableview 单元格中检索它。
这是我在 TableView.m 的 ViewDidLoad 中放入的内容
NSData *imageData;
imageData = [NSKeyedArchiver archivedDataWithRootObject:yourUIImage];
[[NSUserDefaults standardUserDefaults] setObject:imageData forKey:@"image"];
这是我在 TableView cellforRowatIndex 中放入的内容
cell.imageView.image = [UIImage imageWithData:@"bild"];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
但是,当我启动程序时,我在 cell.imageView.image 行出现 EXC_BAD_ACCESS 错误以及“不兼容的指针类型将“NSString*”发送到“NSData*”类型的参数”
顺便说一句,我首先如何保存图像:
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"image"] == nil) {
picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentModalViewController:picker animated:YES];
NSData *imageData;
UIImage *yourUIImage;
imageData = [NSKeyedArchiver archivedDataWithRootObject:yourUIImage];
[[NSUserDefaults standardUserDefaults] setObject:imageData forKey:@"image"];
最佳答案
使用NSKeyedUnarchiver
作为 NSKeyedArchiver
的对应物像这样:
NSData *imageData = [[NSUserDefaults standardUserDefaults] dataForKey: @"image"];
cell.imageView.image = [NSKeyedUnarchiver unarchiveObjectWithData: imageData];
关于ios - 尝试检索图像 - 出现 EXC_BAD_ACCESS 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8869591/