拥有一个应用程序,其中包含用户类型名称并选择了照片,单击“保存”以及将要进入第二个视图的所有内容进入tableview单元格我在tableview单元格中得到了图片。一切正常,最后,我现在对coredata了解很多,但有问题,当用户只键入名称而不选择图片时,点击保存,应用程序崩溃,这是正常的,因为tableview期待来自核心的一些图像数据,我需要以某种方式制作,如果没有选择照片,请继续查看tableview。
我在第一个vc
尝试了这个if photoImage.image == nil {
newUser.setValue(textfield.text, forKey: "username")
}else{
newUser.setValue(textfield.text, forKey: "username")
let imageData = NSData(data: UIImageJPEGRepresentation(photoImageView.image!, 1.0)!)
newUser.setValue(imageData, forKey: "image")
}
它确实有效,我可以将该代码继续到tableview单元格,但现在当我选择任何照片时,单元格中不会显示任何照片。我对有关coredata的信息有点不知所措,也许解决方案非常简单,但我无法找到它。因此,如果没有选择照片,如何告诉xcode进入tableview,所以如果我愿意,我可以稍后选择照片。
这是用于在第二个vc-tableview
中获取的代码let image = person.valueForKey("image") as? NSData
cell.imageView!.image = UIImage(data: image!)
非常感谢
答案 0 :(得分:0)
我使用这样的东西:
注意:我在下面的示例中使用了NSUserDefaults,但这个概念也适用于您的情况。
let userDefaults = NSUserDefaults.standardUserDefaults()
// here I check whether my userDefaults contain any image
// YOU can check whether a user has selected a image or not
if let userPhotoIsNotNil = userDefaults.objectForKey("userPhoto") as? NSData {
let img = UIImage(data: userPhotoIsNotNil)
userPhoto.image = img
} else {
// If there is no image in the userDefaults then set a default Icon
// FOR you, if they have not selected an image then set a default one
userPhoto.image = UIImage(named: "userDefaultIcon")
// OR Save a default icon in userDefaults
// OR for you, save the default to core data
userDefaults.setObject(yourImageFileHere, forKey: "userPhoto")
userDefaults.synchronize()
}
您可以在代码中应用相同的方案。这段代码基本上是我以前的一个项目的复制粘贴。
我希望这有点帮助。