我试图上传一个图像和一个文本来解析。但当我点击“上传”按钮时,应用程序会崩溃,并出现一个Thread 1: signal SIGABRT
错误。这是我正在研究的代码:
类viewControllerPload:UIViewController、UIImagePickerControllerDelegate、UINavigationControllerDelegate{
@IBOutlet weak var uploadPreviewImage: UIImageView!
@IBOutlet weak var uploadMessage: UITextField!
@IBOutlet weak var uploadImageText: UIButton!
@IBAction func uploadIMageFromSource(sender: AnyObject) {
let imagePicker = UIImagePickerController()
imagePicker.delegate = self
imagePicker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
imagePicker.allowsEditing = true
self.presentViewController(imagePicker, animated: true, completion: nil)
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [NSObject : AnyObject]!) {
uploadPreviewImage.image = image
self.dismissViewControllerAnimated(true, completion: nil)
uploadImageText.titleLabel?.text = ""
}
@IBAction func uploadButton(sender: AnyObject) {
let imageText = uploadMessage.text
if uploadPreviewImage.image == nil {
print("Image not uploaded")
}else {
let posts = PFObject(className: "Messages")
posts["Title"] = imageText
posts["Name"] = PFUser.currentUser()
posts.saveInBackgroundWithBlock({
(success: Bool, error: NSError?) -> Void in
if error == nil {
let imageData = UIImagePNGRepresentation(self.uploadPreviewImage.image!)
let parseImageFile = PFFile(name: "upload.png", data: imageData!)
posts["Post"] = parseImageFile
posts.saveInBackgroundWithBlock({
(success: Bool, error: NSError?) -> Void in
if error == nil {
print("data uploaded")
}else {
print(error)
}
})
}else {
print(error)
}
})
}
}
override func viewDidLoad() {
super.viewDidLoad()
}
}
以下是日志截图:
最佳答案
根据错误消息,有一个nil键或值传递给PFObject。
你检查过PFUser.currentUser()
不是零吗?
尝试使用“NSNull”值,或者使用“guard let”或“if let”确保它不是nil。