首页 文章

Swift错误:EXE_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0)

提问于
浏览
1

我正在尝试使这个发布应用程序类似于instagram,但是一旦按下我的撰写按钮,我就陷入了问题 . 此按钮用于发布图像,但会发生崩溃 . 我尝试使用我的应用程序上传 Headers \图像后出现错误:

let imageData = UIImagePNGRepresentation(imageToBeUploaded!)!

它给了我这个错误: EXE_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)

请帮忙!

@IBOutlet weak var captionTextView: UITextView!
@IBOutlet weak var previewImage: UIImageView!



override func viewDidLoad() {
    super.viewDidLoad()

    captionTextView.delegate = self

    // Do any additional setup after loading the view.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


@IBAction func addImageTapped(sender: AnyObject) {

    let imagePicker = UIImagePickerController()

    imagePicker.delegate = self
    imagePicker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
    imagePicker.mediaTypes = UIImagePickerController.availableMediaTypesForSourceType(.PhotoLibrary)!
    imagePicker.allowsEditing = false

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

}

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

    self.previewImage.image = image

    self.dismissViewControllerAnimated(true, completion: nil)
}

func textViewShouldEndEditing(textView: UITextView) -> Bool {
    captionTextView.resignFirstResponder()
    return true;
}

@IBAction func composeTapped(sender: AnyObject) {

    let date = NSDate()
    let dateFormatter = NSDateFormatter()
    dateFormatter.timeStyle = NSDateFormatterStyle.ShortStyle
    dateFormatter.dateStyle = NSDateFormatterStyle.ShortStyle
    let localDate = dateFormatter.stringFromDate(date)

    let imageToBeUploaded = self.previewImage.image
    let imageData = UIImagePNGRepresentation(imageToBeUploaded!)!

    let file: PFFile = PFFile(data: imageData)!


    let fileCaption: String = self.captionTextView.text

    let photoToUpload = PFObject(className: "Posts")
    photoToUpload["Image"] = file
    photoToUpload["Caption"] = fileCaption
    photoToUpload["addedBy"] = PFUser.currentUser()?.username
    photoToUpload["data"] = localDate

    //Get bytes size of image
   /* var imageSize = Float(imageData!.length)
    //Transform into Megabytes
    imageSize = imageSize/(1024*1024)
    print("Image size is \(imageSize)Mb")
   */ 


    do{
        try photoToUpload.save()
    } catch _ {

    }

    print("Successfully Posted.")

    let vc = self.storyboard?.instantiateViewControllerWithIdentifier("postController")
    self.presentViewController(vc! as UIViewController, animated: true, completion: nil)


}

1 回答

  • 2

    看来你是在解开一个可选值而没有实际检查它是否为零 .

    可能问题来自 let file: PFFile = PFFile(data: imageData)! . 在打开变量之前,必须检查nil .

相关问题