gpt4 book ai didi

ios - 向数据库添加信息 Parse.com 错误 PFObject

转载 作者:行者123 更新时间:2023-11-28 06:57:28 30 4
gpt4 key购买 nike

我在解析和用户 ID facebook 之间传递数据时遇到了一些问题,出现以下错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Can't use nil for keys or values on PFObject. Use NSNull for values.

你能帮帮我吗!

我在 FacebookSDK 之间的代码并解析以从用户那里获取信息

    override func viewDidLoad() {
super.viewDidLoad()



self.Username.delegate = self
self.Name.delegate = self
self.emailUser.delegate = self
self.genderUser.delegate = self

//import data from facebook



let graphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, gender, email"])
graphRequest.startWithCompletionHandler( {


(connection, result, error) -> Void in

if error != nil {

print( error)


} else if let result = result {

PFUser.currentUser()?["gender"] = result["gender"]
PFUser.currentUser()?["name"] = result["name"]
PFUser.currentUser()?["email"] = result["email"]


PFUser.currentUser()?.save()



let userId = result ["id"] as! String



let facebookProfilePictureUrl = "https://graph.facebook.com/" + userId + "/picture?type=small"

if let fbpicUrl = NSURL(string: facebookProfilePictureUrl) {

if let data = NSData(contentsOfURL: fbpicUrl) {

self.imageUser.image = UIImage(data: data)

let imageFile:PFFile = PFFile(data: data)



PFUser.currentUser()?["image"] = imageFile
PFUser.currentUser()?.save()

//Insert info user in profile


self.Name.text = PFUser.currentUser()?["name"] as? String
self.genderUser.text = PFUser.currentUser()?["gender"] as? String
self.emailUser.text = PFUser.currentUser()?["email"] as? String


}

}

}

})

最佳答案

就像错误所说的那样,这些行中的任何一行都将 nil 分配给 PFUser 对象:

PFUser.currentUser()?["gender"] = result["gender"]
PFUser.currentUser()?["name"] = result["name"]
PFUser.currentUser()?["email"] = result["email"]
PFUser.currentUser()?["image"] = imageFile

找出 result 中哪些值为 nil 并采取相应的行动。由于 Parse 不支持对象指针“nil”,您将不得不使用 [NSNull null]

编辑

我自己对 Swift 还很陌生,但这里有一个可能的解决方案来解决您的问题。例如,您可以像这样进行检查:

PFUser.currentUser()?["gender"] = result["gender"] ?? NSNull()

这包括对赋值的三元操作,它基本上是说“如果结果 ["gender"] 不为零,则返回它,否则返回 NSNull()”。此解决方案当然仅在您不介意 Parse 对象具有 NSNull() 值时才有效。

关于ios - 向数据库添加信息 Parse.com 错误 PFObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33014739/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com