我有一个应用程序,可以为用户创建一个字段来签名。单击保存签名后,我想创建图像,将其另存为png,并将其保存到核心数据。
“Pilot Signature”是它自己的实体,带有属性图像。
- (IBAction)saveSignature:(id)sender) {
NSData *imageData = UIImagePNGRepresentation(mySignatureImage.image);
// Create an image object for the new image.
NSManagedObject *image =
[NSEntityDescription insertNewObjectForEntityForName:@"Image"
inManagedObjectContext:self.managedObjectContext];
self.mySignatureImage = imageData;
// Set the image for the image managed object.
[image setValue:image forKey:@"PilotSignatureImage"];
}
当我调用saveSignature
预期有条不紊的身体
在self.MySignature.image
行上我得到了
从“NSManagedObject”
分配给'UIImageView'的不兼容类型
我在这里看到了关于如何将图像保存到核心数据的类似帖子,而且我没有运气弄清楚我的做法有多么不同。
任何帮助将不胜感激
答案 0 :(得分:0)
此代码存在严重问题。首先,这一行无效Objective-C:
- (IBAction)saveSignature:(id)sender) {
最后)
不应该在那里。这可能会解释一个预期的方法体"错误,因为你混淆了编译器。
没有self.MySignature.image
行。我猜你是指将值赋给self.mySignatureImage
的行。
self.mySignatureImage = imageData;
该错误告诉您的是self.mySignatureImage
是UIImageView
但imageData
是NSManagedObject
。你不能将其中一个分配给另一个,因为它们是完全不相关的东西。也许你打算在这里输入self.mySignature.image
,因为你在问题中提到了这个问题?
最后这条线没有任何意义:
[image setValue:image forKey:@"PilotSignatureImage"];
您将image
指定为自身的属性。那是错的。也许你想在这里分配imageData
?
我猜测最后几行应该是这样的,但从问题中无法确定:
self.mySignature.image = imageData;
[image setValue:imageData forKey:@"PilotSignatureImage"];
从这个问题以及您提出的其他相关问题,我认为您最好回顾一下Objective-C的一些基础知识。您似乎遇到了与核心数据或图像处理无直接关系的基本问题。