无法使用类型 'NSString' 的参数调用'subscript'



这是导致问题的代码。我评论了错误发生的位置。此代码应该遍历返回的数据,并将字段附加到 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)
        }
    }

但是,这不会发生,并导致此消息的标题中出现错误,其中显示。如果我删除"作为 NSString",则错误消息是:"找不到接受提供参数的'下标'重载"。

请迅速告知和回答。

您尝试应用下标的对象是 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    
}

相关内容

最新更新