簡體   English   中英

Swift:使用未捕獲的異常類型NSException終止應用程序

[英]Swift: Terminating app with uncaught exception type NSException

我在項目中使用了一個開源應用程序示例。

當我在info.plist中更改Facebook憑據時,我收到此“ 以未捕獲的異常錯誤終止 ”。

但是,當我恢復為默認設置(在初始的開源應用程序中使用)時,我沒有遇到任何崩潰/錯誤,並且應用程序可以正常運行。

我無法從此代碼中找出異常,有人可以幫忙嗎?

@IBAction func facebookLogin(sender: UIButton) {

        PFFacebookUtils.logInWithPermissions(["public_profile", "email", "user_friends"], block: { (user: PFUser!, error: NSError!) -> Void in
            if user != nil {
                if user[PF_USER_FACEBOOKID] == nil {
                    self.requestFacebook(user)
                } else {
                    self.userLoggedIn(user)
                }
            } else {
                if error != nil {
                    println(error)
                    if let info = error.userInfo {
                        println(info)
                    }
                }
                MBProgressHUD.showError("Facebook sign in error")
            }
        })
    }

    func requestFacebook(user: PFUser) {
        var request = FBRequest.requestForMe()
        request.startWithCompletionHandler { (connection: FBRequestConnection!, result: AnyObject!, error: NSError!) -> Void in
            if error == nil {
                var userData = result as! [String: AnyObject]!
                self.processFacebook(user, userData: userData)
            } else {
                PFUser.logOut()

            }
        }
    }

    func processFacebook(user: PFUser, userData: [String: AnyObject]) {
        let facebookUserId = userData["id"] as! String
        var link = "http://graph.facebook.com/\(facebookUserId)/picture"
        let url = NSURL(string: link)
        var request = NSURLRequest(URL: url!)
        let params = ["height": "150", "width": "150", "type": "square"]
        Alamofire.request(.GET, link, parameters: params).response() {
            (request, response, data, error) in

            if error == nil {
                var image = UIImage(data: data! as! NSData)!

                if image.size.width > 280 {
                    image = Images.resizeImage(image, width: 280, height: 280)!
                }
                var filePicture = PFFile(name: "picture.jpg", data: UIImageJPEGRepresentation(image, 0.6))
                filePicture.saveInBackgroundWithBlock({ (success: Bool, error: NSError!) -> Void in
                    if error != nil {
                        println("Error saving photo")
                    }
                })

                if image.size.width > 60 {
                    image = Images.resizeImage(image, width: 60, height: 60)!
                }
                var fileThumbnail = PFFile(name: "thumbnail.jpg", data: UIImageJPEGRepresentation(image, 0.6))
                fileThumbnail.saveInBackgroundWithBlock({ (success: Bool, error: NSError!) -> Void in
                    if error != nil {
                        prinln("Error saving thumbnail")
                    }
                })

                user[PF_USER_EMAILCOPY] = userData["email"]
                user[PF_USER_FULLNAME] = userData["name"]
                user[PF_USER_FULLNAME_LOWER] = (userData["name"] as! String).lowercaseString
                user[PF_USER_FACEBOOKID] = userData["id"]
                user[PF_USER_PICTURE] = filePicture
                user[PF_USER_THUMBNAIL] = fileThumbnail
                user.saveInBackgroundWithBlock({ (succeeded: Bool, error: NSError!) -> Void in
                    if error == nil {
                        self.userLoggedIn(user)
                    } else {
                        PFUser.logOut()
                        if let info = error!.userInfo {
                            ProgressHUD.showError("Login error")
                            println(info["error"] as! String)
                        }
                    }
                })
            } else {
                PFUser.logOut()
                if let info = error!.userInfo {
                    prinln("Failed to fetch Facebook photo")
                    println(info["error"] as! String)
                }
            }
        }
    }

這是我在應用程序崩潰時得到的:“ ***由於未捕獲的異常'NSInvalidArgumentException'而終止應用程序,原因:'不能在PFObject上使用nil作為鍵或值。請使用NSNull

.... libc ++ abi.dylib:以類型為NSException的未捕獲異常終止”

只是黑暗中的一槍:與鏈接中的轉義序列有關:

\\ (facebookUserId)?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM