2015-10-07 3 views
0

Имейте приложение, в котором введите имя пользователя и выберите фотографию, нажмите «Сохранить» и все, что будет отображаться во втором представлении в ячейке таблицы. И я получил изображение в ячейке tableview. Все отлично работает, наконец, я много разбираюсь в coredata, но имею проблему, когда пользователь вводит только имя и НЕ выбирает изображение, а когда нажимает save, приложение терпит крах, что нормально, потому что tableview ожидает некоторое изображение из ядра данных, мне нужно как-то сделать, если фотография не выбрана, перейдите к tableview.Текстовое поле данных Swift Core и uiimage в ячейку tableview

я пытался с этим в первом ОГО

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, если не выбрана фотография, и поэтому я могу позже выбрать фотографию, если захочу.

Это код для выборки во втором ОГО - TableView

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

Спасибо большого

+0

Почему бы не поместить изображение по умолчанию или значок по умолчанию в свой. и в вашем коде проверьте, что если ваш cell.ImageView равен nil, используйте default pic. – Skywalker

+0

, потому что без фото в первом коде я получил ошибку, если я не выбрал картинку, неожиданно нашел нуль при разворачивании необязательного значения в этом let 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

попробует, большое вам спасибо, отличная идея для использования по умолчанию pic :). – Igy

+0

без проблем, я все еще сам это изучаю. :) Если это сработает для вас, вернитесь позже и выберите это как ответ. – Skywalker

+0

да, без проблем, с этим рабочим столом я уверен, что cell.imageview всегда будет получать снимок, по умолчанию pic или user selected pic, потрясающий :) thanx снова. – Igy