我正在创建一个简单的应用程序,并实现userInformation部分。用户可以编辑他的信息,但是如果用户没有输入任何信息,我会遇到麻烦,当我尝试从未定义的列中检索数据时,它会崩溃。
这是我检索用户数据的代码。如果有数据需要解析,它就不会崩溃,否则就会崩溃。
let nickName = PFUser.currentUser()?.objectForKey("nickName") as! String
所以我问我如何处理崩溃前检索未定义的值? (请为我写完整的代码)
有没有办法可以在检索之前检查它?
///like this
if (value in parse == "ABC") {
print("yes")
}
答案 0 :(得分:2)
如果要通过查询检索对象(仅定义对象),则需要查看
query.whereKeyExists("nickName");
如果你只是想检查检索到的coulmn值是否定义你可以简单地使用
if(user["nickName"])
{
// nickname exists for user ;
}
答案 1 :(得分:0)
在这里,试试这段代码:
let query = PFUser.query()
query!.whereKey("username", equalTo: "abcd")
query!.findObjectsInBackgroundWithBlock({
(object, error) -> Void in
if (object != nil) {
if(object!.count != 0)
{
for messageObject in object! {
let photoUploaded : Bool = ((messageObject as! PFObject)["photoUploaded"] as? Bool)!
if (photoUploaded == true) {
if let userPicture = messageObject["profilePic"] as? PFFile {
userPicture.getDataInBackgroundWithBlock { (imageData: NSData?, error: NSError?) -> Void in
if (error == nil) {
let imageData = imageData
let image = UIImage(data: imageData!)
self.createrImage.image = image
} else {
// Error handling
}
}
}
}
}
} // object is undefined here
} // else is added here to get object is nill
})
我正在检查照片是否与用户数据一起上传。如果已上传,我会将true
作为Bool
值,如果没有上传,则为false
。如果未定义,请在注释中添加else part和breakpoint以避免崩溃。如有任何问题,请更新我