捕获签名到核心数据

时间:2014-07-27 05:19:49

标签: ios core-data uiimage

我有一个应用程序,可以为用户创建一个字段来签名。单击保存签名后,我想创建图像,将其另存为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'的不兼容类型

我在这里看到了关于如何将图像保存到核心数据的类似帖子,而且我没有运气弄清楚我的做法有多么不同。

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

此代码存在严重问题。首先,这一行无效Objective-C:

- (IBAction)saveSignature:(id)sender)  {

最后)不应该在那里。这可能会解释一个预期的方法体"错误,因为你混淆了编译器。

没有self.MySignature.image行。我猜你是指将值赋给self.mySignatureImage的行。

self.mySignatureImage = imageData;

该错误告诉您的是self.mySignatureImageUIImageViewimageDataNSManagedObject。你不能将其中一个分配给另一个,因为它们是完全不相关的东西。也许你打算在这里输入self.mySignature.image,因为你在问题中提到了这个问题?

最后这条线没有任何意义:

[image setValue:image forKey:@"PilotSignatureImage"];

您将image指定为自身的属性。那是错的。也许你想在这里分配imageData

猜测最后几行应该是这样的,但从问题中无法确定:

self.mySignature.image = imageData;
[image setValue:imageData forKey:@"PilotSignatureImage"];

从这个问题以及您提出的其他相关问题,我认为您最好回顾一下Objective-C的一些基础知识。您似乎遇到了与核心数据或图像处理无直接关系的基本问题。