2016-08-20 20 views
0

私はアプリを実装するためにコアデータを使用しようとしています。しかし52行にここに助けが必要 -エラー:「スレッド1:EXC_BAD_ACCESS(コード= EXC_I386_GPFLT)

myHood.setMyHoodImg(addHoodImg.image!)) 

私はエラーを毎回持ちます。新しいフードを作成するには、ボタンをクリックし、エラー:。

"Thread 1: EXC_BAD_ACCESS(Code=EXC_I386_GPFLT)

ここでは、コードは次のとおりです。

import UIKit 
import CoreData 

class CreateHoodVC: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate { 

@IBOutlet weak var hooddesc: UITextField! 
@IBOutlet weak var addHoodImgBtn: UIButton! 
@IBOutlet weak var addHoodImg: UIImageView! 

var imagePicker: UIImagePickerController! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    imagePicker = UIImagePickerController() 
    imagePicker.delegate = self 
    addHoodImg.layer.cornerRadius = 4.0 
    addHoodImg.clipsToBounds = true 

} 

func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) { 

    imagePicker.dismissViewControllerAnimated(true, completion: nil) 
    addHoodImg.image = image 
} 

@IBAction func addImage(sender: AnyObject!){ 

    presentViewController(imagePicker, animated: true, completion: nil) 

} 


@IBAction func createHood(){ 

    if let hoodDescription = hooddesc.text where hoodDescription != ""{ 

     let app = UIApplication.sharedApplication().delegate as! AppDelegate 
     let context = app.managedObjectContext 
     let entity = NSEntityDescription.entityForName("MyHood", inManagedObjectContext: context)! 
     let myHood = MyHood(entity: entity, insertIntoManagedObjectContext: context) 

     myHood.myHoodDescription = hoodDescription 
     myHood.setMyHoodImg(addHoodImg.image!) 

     context.insertObject(myHood) 

     do { 

      try context.save() 
     } catch { 
      print("Could not save new Hood") 
     } 
    } 

} 

} 

答えて

0

それは本当に簡単です:

あなたが書いた場合:

myHood.setMyHoodImg(addHoodImg.image!) 

あなたが画像を選択しなかった場合addHoodImg.imageは、存在するが、最初の実行で、NILあるん想定されています。 ので、2つの方法:

1)単に書く:

if let hoodDescription = hooddesc.text where hoodDescription != "" , let img = addHoodImg.image { 

2)スタートのボタンを無効にし、選択し、画像の後に使用可能。

このヘルプが必要です。

ps私はあなたが使っている(減らされた!)クラスで完全に機能するプロトを持っています。

+0

私は最初のオプションを実装しました。しかし、私はまだエラーが発生しています: "、2016-08-20 06:14:42.924 My-Hood [5076:250083] _BSMachError:(os/kern)無効な機能(20) 2016-08-20 06 :14:42.928 My-Hood [5076:250083] _BSMachError:(os/kern)無効な名前(15)? –

関連する問題