简体   繁体   English

错误:“线程 1:EXC_BAD_ACCESS(代码=EXC_I386_GPFLT)

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

I need help here.我在这里需要帮助。 I am trying to use core data to implement an app.我正在尝试使用核心数据来实现一个应用程序。 But on line 52 -但是在第 52 行 -

myHood.setMyHoodImg(addHoodImg.image!))

I having an error each time a click the button to create a new hood.每次单击按钮创建新引擎盖时都会出错。 The error:错误:

"Thread 1: EXC_BAD_ACCESS(Code=EXC_I386_GPFLT) “线程 1:EXC_BAD_ACCESS(代码=EXC_I386_GPFLT)

Here is the code:这是代码:

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

}

}

it's really simple:这真的很简单:

if You write:如果你写:

myHood.setMyHoodImg(addHoodImg.image!)

you are supposing addHoodImg.image DOES exist, but on first run, is NIL, if You did not choose an image.您假设 addHoodImg.image 确实存在,但在第一次运行时,如果您没有选择图像,则为 NIL。 so 2 ways:所以有2种方式:

1) simply write: 1)简单地写:

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

2) disable button on start AND enable after choosing and image. 2) 在开始时禁用按钮并在选择和图像后启用。

Hope this help.希望这有帮助。

ps I have a fully functional proto here with (reduced!) classes you use. ps 我在这里有一个功能齐全的原型,其中包含您使用的(减少的!)类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 加载AVPlayer时出现错误线程1:EXC_BAD_ACCESS(code = EXC_I386_GPFLT) - Getting error Thread 1: EXC_BAD_ACCESS (code=EXC_I386_GPFLT) when loading AVPlayer 得到错误:“线程1:SOAP请求期间EXC_BAD_ACCESS(Code = EXC_I386_GPFLT) - Getting error: "Thread 1: EXC_BAD_ACCESS(Code=EXC_I386_GPFLT) during SOAP request 线程1:EXC_BAD_ACCESS(代码= EXC_I386_GPFLT) - Thread 1: EXC_BAD_ACCESS (code=EXC_I386_GPFLT) 在向我的结构添加属性后获取线程 10:EXC_BAD_ACCESS (code=EXC_I386_GPFLT) - Getting Thread 10: EXC_BAD_ACCESS (code=EXC_I386_GPFLT) after adding property to my struct UIAlertView EXC_BAD_ACCESS(代码=EXC_I386_GPFLT) - UIAlertView EXC_BAD_ACCESS(code=EXC_I386_GPFLT) GPPSignIn sharedInstance-> EXC_BAD_ACCESS(代码= EXC_I386_GPFLT) - GPPSignIn sharedInstance -> EXC_BAD_ACCESS (code = EXC_I386_GPFLT) 如何在swift编程中解决这个EXC_BAD_ACCESS(代码= EXC_i386_GPFLT) - How to solve this EXC_BAD_ACCESS(code=EXC_i386_GPFLT )in swift programming 当deleteRows时为EXC_BAD_ACCESS(代码为EXC_I386_GPFLT)(在[IndexPath]) - EXC_BAD_ACCESS (code=EXC_I386_GPFLT) when deleteRows(at: [IndexPath]) iOS Swift:EXC_BAD_ACCESS(code = EXC_i386_GPFLT)关于单例 - iOS Swift : EXC_BAD_ACCESS(code=EXC_i386_GPFLT ) regarding a singleton IOS:NavigationController切换UIViewcontrollers,EXC_BAD_ACCESS EXC_I386_GPFLT错误 - IOS: NavigationController switch UIViewcontrollers , EXC_BAD_ACCESS EXC_I386_GPFLT error
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM