Swift Core数据文本字段和uiimage到tableview单元格

时间:2015-10-07 09:05:37

标签: swift

拥有一个应用程序,其中包含用户类型名称并选择了照片,单击“保存”以及将要进入第二个视图的所有内容进入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!)

非常感谢

1 个答案:

答案 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()
    }

您可以在代码中应用相同的方案。这段代码基本上是我以前的一个项目的复制粘贴。

我希望这有点帮助。