2015-10-07 39 views
0

有一個應用程序,其中用戶類型的名稱和選擇的照片,點擊保存和所有的第二個視圖到桌面單元格。我在tableview單元格中獲得了圖片。所有工作都很好,現在我對coredata有了很多瞭解,但是有一個問題,當用戶只鍵入名稱而不選擇圖片,點擊保存時,應用程序崩潰,這是正常的,因爲tableview期望從核心數據,我需要以某種方式來製作,如果照片沒有選擇,進入tableview。Swift核心數據文本字段和uiimage到桌面單元格

我試圖與這第一個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") 
} 

它的工作,我可以用代碼來實現代碼如下細胞進行,但現在當我拿起任何照片,是有史以來細胞不顯示照片。我對有關coredata的信息有點不知所措,也許解決方案非常簡單,但我無法找到它。所以如果沒有照片被選中,如何告訴xcode進入tableview,所以如果我想要,我可以稍後選擇照片。

這是在第二VC取碼 - 實現代碼如下

let image = person.valueForKey("image") as? NSData 
cell.imageView!.image = UIImage(data: image!) 

謝謝你很多

+0

爲什麼不把他們的默認圖片或默認圖標。並在你的代碼檢查,如果你的cell.ImageView是零,然後使用默認圖片。 – Skywalker

+0

,因爲沒有照片是第一個代碼中的nill,如果我不選擇圖片,我得到了崩潰,意外地發現零,同時在這個讓imageData = NSData(數據:UIImageJPEGRepresentation(photoImageView.image!,1.0)!)解包一個可選值!) newUser。 setValue(imageData,forKey:「image」) – Igy

+0

您能否提供我對代碼的訪問權限,以便我可以解決它。如果您對此不滿意,請嘗試使用if語句,如果用戶未選擇照片,則將核心數據中的默認照片保存。我假設您嘗試保存您的選擇並嘗試轉到下一個視圖時出現錯誤。 – Skywalker

回答

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

你可以在你的代碼應用相同的場景。此代碼基本上是我以前項目之一的複製粘貼。

我希望這有助於。

+0

將嘗試它,非常感謝你,使用默認圖片的好主意:)。 – Igy

+0

沒問題的隊友我仍然自己學習它。 :)如果這對你有用,那麼稍後再回來選擇這個答案。 – Skywalker

+0

是的,沒問題,這個workarround我敢肯定,cell.imageview將總是得到一張圖片,默認圖片或用戶選擇的圖片,再次令人驚歎:) thanx。 – Igy