无法使用“NSString”类型的参数调用“下标”

时间:2014-11-25 15:32:49

标签: ios swift

以下是导致问题的代码。 我评论了错误发生的地方。 此代码应该循环返回数据,并将字段附加到NSSTring类型的空数组。

var bb = ["842278359156695", "850445345006243"]
        //Get user friends data from Parse
        var query = PFUser.query()
        query.selectKeys(["first_name", "last_name", "score", "rank"])
        query.whereKey("fbId", containedIn: bb)

        query.findObjectsInBackgroundWithBlock {
            (objects: [AnyObject]!, error: NSError!) -> Void in
            var friendsArrays: [NSString] = []

            for var i = 0; i < objects.count; ++i {
                friendsArrays.append(objects["first_name"] as NSString) // ERROR here

            }
            println(friendsArrays)

        }
    }

然而,这不会发生,并导致此消息标题中的错误,显示在哪里。如果我删除“as NSString”,那么错误消息是:“找不到接受提供的参数的'下标'的重载”。

请迅速通知并回答。

1 个答案:

答案 0 :(得分:1)

您尝试应用下标的对象是objects,这是一个数组。您可能希望在第i个元素处执行此操作:

for var i = 0; i < objects.count; ++i {
    friendsArrays.append(objects[i]["first_name"] as NSString) // ERROR here    
                                ^^^
}

但我建议将其转换为for-each循环

for object in objects {
    friendsArrays.append(object["first_name"] as NSString) // ERROR here    
}