Swift Error:EXE_BAD_INSTRUCTION(code = EXC_I386_INVOP,subcode = 0x0)

问题描述:

我试图让这个贴子的应用程序类似于instagram,但一旦我按下我的撰写按钮,我就陷入了一个问题。这个按钮是假设发布的图像,而不是它的崩溃。我有一个错误后,我尝试在这里与我的应用程序上传字幕\图像:Swift Error:EXE_BAD_INSTRUCTION(code = EXC_I386_INVOP,subcode = 0x0)

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

您不应该打开一个可选的值而不做检查来查看它是否为零。你有没有查过 –

看来你正在解开一个可选的值而没有真正的检查它是否为零。可能是let file: PFFile = PFFile(data: imageData)!。在打开变量之前,您必须检查零。

+0

你能给我举个例子吗? –