我不能使用nil来定义' undefined'在解析?

时间:2015-09-29 21:15:45

标签: swift parse-platform

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

这是我检索用户数据的代码。现在我可以检查一个特定的值,但是,我发现了一个错误' undefined'之一。

 var query = PFQuery(className: "Note")
    query.getObjectInBackgroundWithId("kg8KhAWCms", block: {
        (obj, error)in
        if let obj = obj! as? PFObject {




            let nickname = (obj.objectForKey("text")) as! String



            if (nickname != nil) {

///// I have a error message that binary operator'!=' cannot be applied to operands of type 'String' and 'NiLiteralConvertible'




                self.nickNameLabel.text = nickname

            }else{
                self.nickNameLabel.text = "you don't have a nick name"
            }


        } else {
            print(error)
        }
    })

什么是NiLiteralConvertible' ? 而且我也试过这个,

   var query = PFQuery(className: "Note")
    query.getObjectInBackgroundWithId("kg8KhAWCms", block: {
        (obj, error)in
        if let obj = obj! as? PFObject {




            let nickname = (obj.objectForKey("text")) as! String


            if !(nickname.isEmpty) {
                self.nickNameLabel.text = nickname

            }else{
                self.nickNameLabel.text = "you don't have a nick name"
            }


        } else {
            print(error)
        }
    })

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

///喜欢这个

if (undefined in parse  == somekindOfType) {



print("yes")



}

1 个答案:

答案 0 :(得分:1)

您无法使用nickname != nil,因为您已经说过不能 nil let nickname = (obj.objectForKey("text")) as! String

as! String打开obj.objectForKey("text")并且不能nil,否则您将收到错误。

我建议使用以下内容:

if let nickname = obj.objectForKey("text") as? String {
    self.nickNameLabel.text = nickname
}
else{
    self.nickNameLabel.text = "you don't have a nick name"
}

或许这对阅读有用:Swift Literal Convertibles