斯威夫特| 将nil分配给字符串

丹尼尔·梅尔策(Daniel Meltzer)

我正在使用Parse.com编写应用程序

func getContactsWithComplition(closure:() -> ())
{
    contactArray=[];
    if (PFUser.currentUser() != nil)
    {
        var realtion: PFRelation=PFUser.currentUser()["contactsOfUser"] as PFRelation;
        var query: PFQuery=realtion.query() as PFQuery;
        query.findObjectsInBackgroundWithBlock({ (contactsArray:[AnyObject]! , error:NSError!) -> Void in
         if(error == nil)
         {

            for aContact in contactsArray
            {
            var cont=contact(phone: aContact["phoneNumber"] as String, firstName: aContact["name"] as String, lastName: aContact["familyName"] as String, adress: aContact["adress"] as String, email: aContact["email"] as String, role: aContact["role"] as String, note: aContact["note"] as String)
                contactArray.append(cont)

            }
            closure()

         }
        else
         {
            println(error);
            }
        })


    }
    else
    {
        println("suck")
    }
}

当其中一个部分的值未定义时,它将返回nil,不能将其引用为String
我该如何解决?

空速

假设各部分是您的姓名,电话号码等。

如果要在不存在任何值的情况下替换默认值,则可以使用nil-coalescing运算符:

//  assuming empty string is a reasonable substitute
let number = aContact["phoneNumber"] as? String ?? ""

请注意?with使用as?-这种方式,如果值不是字符串,它将优雅地失败(实际上,as从Swift 1.2开始,您将被迫使用这种方式)。

您可能需要摆弄parens来修正asvs的优先级,??具体取决于您所运行的Swift版本。

PS,如果您正在运行Swift 1.2,则可能可以取消以下某些可选检查:

if let user = PFUser.currentUser(),
       relation = user["contactsOfUser"] as? PFRelation,
       query = relation.query() as? PFQuery
{
    query.findObjectsInBackgroundWithBlock { contactsArray, error in
        if let err = error {
            println(err)
        }
        else {
          // etc
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

斯威夫特=== nil

来自分类Dev

斯威夫特:与字符串不同 与。细绳

来自分类Dev

斯威夫特弦与弦!与字符串?

来自分类Dev

斯威夫特字符串到数组

来自分类Dev

无法将“String.Type”类型的值分配给“String”类型?- 斯威夫特

来自分类Dev

斯威夫特字符串公式成真实计算

来自分类Dev

无法分配“日期?”类型的值 输入“字符串?” 斯威夫特 3

来自分类Dev

斯威夫特:IBoutlet总是返回nil对象吗?

来自分类Dev

斯威夫特2:如何为AnyObject分配字典?

来自分类Dev

斯威夫特:子串的简单方法?

来自分类Dev

如何将数组对象转换为JSON字符串。iOS的8。斯威夫特1.2

来自分类Dev

如何将字符串转换为 utf-8?(斯威夫特,阿拉莫菲尔)

来自分类Dev

斯威夫特:如何将一个类的委托分配给当前类中的另一个类?

来自分类Dev

将字符串数组分配给char **

来自分类Dev

将字符串文字分配给char *

来自分类Dev

将字符串数组分配给char **

来自分类Dev

将字符串的长度分配给整数:C ++

来自分类Dev

将char *分配给字符串而不复制

来自分类Dev

将内存分配给字符串数组

来自分类Dev

将空字符串分配给php变量

来自分类Dev

将整数值分配给字符串

来自分类Dev

将字符串分配给int会怎样?

来自分类Dev

将进程分配给字符串?

来自分类Dev

C ++将char **分配给字符串数组

来自分类Dev

将内存分配给特定的“字符串”

来自分类Dev

尝试将数字分配给字符串

来自分类Dev

将字符串分配给R中的变量

来自分类Dev

将字符串分配给purrr :: pluck函数

来自分类Dev

将包含引号的字符串分配给变量