从完成块追加到数组中

时间:2015-12-05 00:18:07

标签: ios swift swift2

我试图将解析查询的结果附加到usersData

struct Data {
    var FirstName:String!
    var LastName:String!
    var Gender:String!
    var Age:String!
}

在课堂上我有

var usersData = [Data]()

我正在使用它

func parseUsersData(completionHandler: [Data] -> Void) {
    var usersDataArray = [Data]()
    let query = PFQuery(className: "_User")
    query.fromLocalDatastore()
    query.findObjectsInBackgroundWithBlock { (objects, error) -> Void in
        if error == nil {
            if let user = objects as? [PFObject]! {
                for object in user! {

                    var singleData = Data()

                    singleData.FirstName = object["firstName"] as! String
                    singleData.LastName = object["lastName"] as! String
                    singleData.Gender = object["gender"] as! String
                    singleData.Age = object["age"] as! String

                    usersDataArray.append(singleData)
                }
            }
            completionHandler(usersDataArray)
        }

    }
}

最后,我正在尝试这样做:

编辑:为了澄清,我需要将查询中的数据userDataArray传递给数组usersData。

    parseUsersData { (usersDataArray) -> Void in
        usersData.append(usersDataArray)
    }

我得到的错误是

  Cannot convert value of type '[Data]' to expected argument type 'Data'

3 个答案:

答案 0 :(得分:0)

在您的上一个代码块中,您似乎将数据数组附加到Data对象s = s.substring(ind,s.indexOf(",", ind)); ,这会导致我认为错误。你的意思是写usersData.append(usersDataArray)哪个更有意义吗?

答案 1 :(得分:0)

您正在尝试将数据数组添加到正在查找数据对象的数组中。添加一个处理数据数组的新结构,然后更改usersData以查找DataArray:

struct DataArray {
    var array = [Data]()
}

然后换行:

var usersData = [DataArray]()

答案 2 :(得分:0)

usersDataArray是一个数组。要将数组添加到其他数组,请更喜欢appendContentsOf

usersData.appendContentsOf(usersDataArray)