如何在Parse中检查值是否未定义?

时间:2015-09-28 02:35:22

标签: swift parse-platform

我正在创建一个简单的应用程序,并实现userInformation部分。用户可以编辑他的信息,但是如果用户没有输入任何信息,我会遇到麻烦,当我尝试从未定义的列中检索数据时,它会崩溃。

这是我检索用户数据的代码。如果有数据需要解析,它就不会崩溃,否则就会崩溃。

    let nickName = PFUser.currentUser()?.objectForKey("nickName") as! String

所以我问我如何处理崩溃前检索未定义的值?             (请为我写完整的代码)

有没有办法可以在检索之前检查它?

///like this
if (value in parse  == "ABC") {
    print("yes")
}

2 个答案:

答案 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以避免崩溃。如有任何问题,请更新我