【发布时间】:2012-04-05 12:17:08
【问题描述】:
我无法将照片保存到核心数据中。我正在尝试将其保存为实体中设置为“可转换”的属性。我已经看到关于 SO 的各种讨论,并且共识似乎是在 iOS5 及更高版本中,我不需要使用编码器,因为 UIImage 现在符合 NSCoding。尝试保存 Core Data 时出现错误。请看下面我用来保存照片的代码......
- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType];
UIImage *originalImage, *editedImage, *imageToSave;
// Handle a still image capture
if (CFStringCompare ((CFStringRef) mediaType, kUTTypeImage, 0) == kCFCompareEqualTo) {
editedImage = (UIImage *) [info objectForKey:UIImagePickerControllerEditedImage];
originalImage = (UIImage *) [info objectForKey:UIImagePickerControllerOriginalImage];
if (editedImage) {
imageToSave = editedImage;
} else {
imageToSave = originalImage;
}
// Convert image to Data for entry into Core Data
NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(imageToSave)];
// Add image to Core Data
myEntity.attribute = imageData;
NSError *error = nil;
if (![managedObjectContext save:&error]) {
NSLog(@"Error when saving core data");
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
}
[[picker parentViewController] dismissModalViewControllerAnimated: YES];
[picker release];
}
【问题讨论】:
-
您遇到的错误是什么?
-
为什么不把图片保存到 Document 目录,只把它的路径保存为 NSString 呢?它的效率比你现在做的要高.. 几分钟前就做了..
-
我得到的错误在很大程度上没有帮助:保存核心数据时出错。未解决的错误 [null],[null]。
-
你为什么不按照我建议的方法?它真的非常高效..看到这个:stackoverflow.com/questions/2090028/…
-
你能确认 managedObjectContext 和 myEntity 本身不是 nil 吗?
标签: iphone objective-c ios core-data uiimage