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)
}
答
看来你正在解开一个可选的值而没有真正的检查它是否为零。可能是let file: PFFile = PFFile(data: imageData)!
。在打开变量之前,您必须检查零。
+0
你能给我举个例子吗? –
您不应该打开一个可选的值而不做检查来查看它是否为零。你有没有查过 –