无法设置图像按钮- swift

Unable to set image Button- swift

我有一个核心数据应用程序(如日记),我在其中提示用户从相机或照片库中选择图像并将其设置为 ImageData,然后设置为按钮的图像。这部分有效,但如果用户不选择图像而只写文本并按完成。它给我 "unexpectedly found nil" 错误。我有一个名为 "icn_noimage" 的图像,所以如果用户没有选择任何图像,该图像将被设置为按钮。我试着这样做: 这里imageData、body、date是core data的属性。

 var pickedImage: UIImage! {
    didSet {
        if (pickedImage == nil) {
            self.imageButton?.setImage(UIImage(named: "icn_noimage"), forState: .Normal)
        } else {
            self.imageButton?.setImage(pickedImage, forState: .Normal)
        }
    }
}

 func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {

    let image: UIImage! = info[UIImagePickerControllerOriginalImage] as! UIImage
    self.pickedImage = image

    self.dismissViewControllerAnimated(true, completion: nil)
}

  func insertDiaryEntry() {
    let coreDataStack: CoreDataStack = CoreDataStack.defaultStack
    let entry: DiaryEntry = NSEntityDescription.insertNewObjectForEntityForName("DiaryEntry", inManagedObjectContext: coreDataStack.managedObjectContext) as! DiaryEntry
    entry.body = self.textView.text
    entry.date = NSDate().timeIntervalSince1970
    entry.mood = self.pickedMood!.rawValue

    entry.imageData = UIImageJPEGRepresentation(self.pickedImage, 0.75)

    entry.location = self.location as String
    coreDataStack.saveContext()

}

如果我无法解释我的问题,请询问详情。 感谢您的帮助.....

确保 "icn_noimage" 图片在您的包中可用。

并且仍然在 DiaryEntry class 中将 imageData 标记为可选。

将 imageData 与 Optional(?) 一起使用,imageData?

如果图像不可用,这将接受图像数据的 nil 值。

如果它已经是可选的,则使用条件 Un-wrapping。

if let image = self.pickedImage
{
   let imageData = UIImageJPEGRepresentation(image, 0.75)
   entry.imageData = imageData
}