Ios 从完成块追加到数组中
我试图将解析查询的结果附加到usersData中Ios 从完成块追加到数组中,ios,swift,swift2,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 usersDa
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'
在上一个代码块中,您似乎将数据数组附加到数据对象
usersData.append(usersDataArray)
,我认为这会导致错误。您的意思是编写usersDataArray.append(usersData)
,这更有意义吗?您正在尝试将数据数组添加到正在查找数据对象的数组中。添加处理数据数组的新结构,然后更改usersData以查找DataArray的:
struct DataArray {
var array = [Data]()
}
并更改行:
var usersData = [DataArray]()
usersDataArray
是一个数组。要将一个数组添加到另一个数组中,请首选appendContentsOf
:
usersData.appendContentsOf(usersDataArray)
您可以尝试
usersData+=usersDataArray
append以任何方式获取数组元素并将其附加到这些元素的数组中。这给了我相同的错误。你能详细说明一下吗?只是想澄清一下,你确实想要一个数组,对吗?你在哪一行收到错误?另外,您如何声明usersData?对不起,我不确定这是否是我要找的。。听起来对吗?我正在尝试将数据从usersDataArray获取到usersData中。现在我将usersData声明为var usersData:Data。那可能是你的问题了。usersData需要是一个数组。将其声明为var usersData=[Data]()
。然后执行usersData。appendContentsOf(usersDataArray)
很抱歉,我确实有过这样的内容。我以为你指的是别的什么当我打印出UsersData时,我得到一个空数组你在哪里打印UsersData?usersDataArray不是空的吗?我正在viewDidLoad中打印userData。UsersDataArray由解析查询中的数据填充。您可以发布usersData和UsersDataArray打印的屏幕截图吗?从usersData.appendContentsOf(usersDataArray)打印输出