[英]Getting error Thread 1: EXC_BAD_ACCESS (code=EXC_I386_GPFLT) when loading AVPlayer
[英]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.