无法设置图像按钮- 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
}
我有一个核心数据应用程序(如日记),我在其中提示用户从相机或照片库中选择图像并将其设置为 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
}