尝试使用核心数据将图像添加到数据库。 View Controller 用于用户向数据库输入文本字段和图像。用户使用 UIImagePickerController 选择图像。代码是:
- (void) add
{
NSManagedObjectContext *context = [app managedObjectContext];
Exercises *exercises = [NSEntityDescription insertNewObjectForEntityForName:@"Exercises" inManagedObjectContext:context];
exercises.name = name.text;
exercises.difficulty = difficulty.text;
exercises.type = type.text;
exercises.instructions = instructions.text;
NSData* image1 = [NSData dataWithData:UIImagePNGRepresentation(imageView.image)];
[NSManagedObject setValue:image1 forKey:@"imageView"];
[self dismissViewControllerAnimated:YES completion:nil];
错误是由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[setValue:forUndefinedKey:]: 此类与键 imageView 的键值编码不兼容。”关键应该是什么?我什至以正确的方式解决这个问题吗?顺便说一句,保存和检索文本工作正常。我唯一的问题是添加图片。
最佳答案
电话:
[NSManagedObject setValue:image1 forKey:@"imageView"];
尝试调用 setValue:forKey:
上课NSManagedObject
.该类未实现该方法,因此会引发异常。
可能您想在 exercises
上调用它, NSManagedObject
的实例你刚刚创建的——它有一个名为 imageView
的数据属性吗? ?
在样式和性能方面,访问特定 setter 的点表示法是首选,因为您已经使用了所有其他属性,但与它旁边的 PNG 编码相比,它不太可能成为大问题所以我不会担心。
关于ios - 使用 Core Data 将图像添加到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19396918/