簡體   English   中英

錯誤:“線程 1:EXC_BAD_ACCESS(代碼=EXC_I386_GPFLT)

[英]error: "Thread 1: EXC_BAD_ACCESS(Code=EXC_I386_GPFLT)

我在這里需要幫助。 我正在嘗試使用核心數據來實現一個應用程序。 但是在第 52 行 -

myHood.setMyHoodImg(addHoodImg.image!))

每次單擊按鈕創建新引擎蓋時都會出錯。 錯誤:

“線程 1:EXC_BAD_ACCESS(代碼=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")
        }
    }

}

}

這真的很簡單:

如果你寫:

myHood.setMyHoodImg(addHoodImg.image!)

您假設 addHoodImg.image 確實存在,但在第一次運行時,如果您沒有選擇圖像,則為 NIL。 所以有2種方式:

1)簡單地寫:

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

2) 在開始時禁用按鈕並在選擇和圖像后啟用。

希望這有幫助。

ps 我在這里有一個功能齊全的原型,其中包含您使用的(減少的!)類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM