Im really not getting it:
func getUsersFromGroups(groupsCollection:BackendlessCollection) {
let currentPage = groupsCollection.getCurrentPage()
print ("count: \(currentPage.count)")
for group in currentPage {
print ("Group: \(group)")
}
}
func getGroupsFromCurrentUser() {
print ("Current User: ",bl.userService.currentUser)
// Create relation query for fetching the users relations
let query = BackendlessDataQuery()
let queryOptions = QueryOptions()
queryOptions.related = NSMutableArray(array: ["users"])
query.queryOptions = queryOptions
// Where clause - find all groups that contain a user with id bl.userService.currentUser.objectId
query.whereClause = "users.objectId = '\(bl.userService.currentUser.objectId)'"
let groupCollection = backendless.persistenceService.of(BLGroup.ofClass())
groupCollection.find(query, response: {(
groups : BackendlessCollection!) -> () in
print("Groups have been fetched (ASYNC): \(groups)")
getUsersFromGroups(groups)
},
error: { (fault : Fault!) -> () in
print("Server reported an error (ASYNC): \(fault)")
})
}
getGroupsFromCurrentUser()
Log Output:
Groups have been fetched (ASYNC): <BackendlessCollection> -> type: (null), offset: 0, pageSize: 100, totalObjects: 1, data: ( { “___class” = BLGroup; “__meta” = “{“relationRemovalIds”:{},“selectedProperties”:[“created”,“name”,”___class",“ownerId”,“updated”,“objectId”,“users”],“relatedObjects”:{“users”:[“2FFCE40C-3095-3237-FF0F-C739D28EC900”,“E38DC051-82C5-1F30-FF3D-77C3D1103500”]}}"; created = “2015-11-23 14:37:04 +0000”; name = “TestGroup”; objectId = “CB08C1AF-EB24-D28B-FF53-5DB53C923D00”; ownerId = “<null>”; updated = “<null>”; users = ( “<BackendlessUser> email:‘xxxxxxxx’, password:’<null>’, name:’<null>’, userId:‘2FFCE40C-3095-3237-FF0F-C739D28EC900’, userToken:’(null)’, objectId:‘2FFCE40C-3095-3237-FF0F-C739D28EC900’, properties:{\n “___class” = Users;\n “__meta” = “{\“relationRemovalIds\”:{},\“selectedProperties\”:[\“password\”,\“firstname\”,\“initials\”,\“created\”,\“middlename\”,\“groups\”,\“ownerId\”,\“updated\”,\“objectId\”,\“email\”,\“lastname\”],\“relatedObjects\”:{}}”;\n created = “2015-11-16 13:52:56 +0000”;\n email = “xxxxx”;\n firstname = xxxx;\n groups = “<null>”;\n initials = xxx;\n lastname = xxxxx;\n middlename = “<null>”;\n name = “<null>”;\n objectId = “2FFCE40C-3095-3237-FF0F-C739D28EC900”;\n ownerId = “<null>”;\n password = “<null>”;\n updated = “2015-11-20 14:07:11 +0000”;\n userId = “2FFCE40C-3095-3237-FF0F-C739D28EC900”;\n userToken = “<null>”;\n}”, “<BackendlessUser> email:‘xxxxx’, password:’<null>’, name:’<null>’, userId:‘E38DC051-82C5-1F30-FF3D-77C3D1103500’, userToken:’(null)’, objectId:‘E38DC051-82C5-1F30-FF3D-77C3D1103500’, properties:{\n “___class” = Users;\n “__meta” = “{\“relationRemovalIds\”:{},\“selectedProperties\”:[\“password\”,\“firstname\”,\“initials\”,\“created\”,\“middlename\”,\“groups\”,\“ownerId\”,\“updated\”,\“objectId\”,\“email\”,\“lastname\”],\“relatedObjects\”:{}}”;\n created = “2015-11-20 14:05:13 +0000”;\n email = “xxxxx”;\n firstname = xxxx;\n groups = “<null>”;\n initials = D;\n lastname = xxxx;\n middlename = “<null>”;\n name = “<null>”;\n objectId = “E38DC051-82C5-1F30-FF3D-77C3D1103500”;\n ownerId = “<null>”;\n password = “<null>”;\n updated = “2015-11-20 14:05:49 +0000”;\n userId = “E38DC051-82C5-1F30-FF3D-77C3D1103500”;\n userToken = “<null>”;\n}” ); }), query: <BackendlessDataQuery> -> properties: (null), whereClause: users.objectId = ‘2FFCE40C-3095-3237-FF0F-C739D28EC900’, queryOptions: <QueryOptions> -> { offset = 0; pageSize = 100; related = ( users );}
count: 1
Group: { “___class” = BLGroup; “__meta” = “{“relationRemovalIds”:{},“selectedProperties”:[“created”,“name”,”___class",“ownerId”,“updated”,“objectId”,“users”],“relatedObjects”:{“users”:[“2FFCE40C-3095-3237-FF0F-C739D28EC900”,“E38DC051-82C5-1F30-FF3D-77C3D1103500”]}}"; created = “2015-11-23 14:37:04 +0000”; name = “TestGroup”; objectId = “CB08C1AF-EB24-D28B-FF53-5DB53C923D00”; ownerId = “<null>”; updated = “<null>”; users = ( “<BackendlessUser> email:‘xxxxxxxx’, password:’<null>’, name:’<null>’, userId:‘2FFCE40C-3095-3237-FF0F-C739D28EC900’, userToken:’(null)’, objectId:‘2FFCE40C-3095-3237-FF0F-C739D28EC900’, properties:{\n “___class” = Users;\n “__meta” = “{\“relationRemovalIds\”:{},\“selectedProperties\”:[\“password\”,\“firstname\”,\“initials\”,\“created\”,\“middlename\”,\“groups\”,\“ownerId\”,\“updated\”,\“objectId\”,\“email\”,\“lastname\”],\“relatedObjects\”:{}}”;\n created = “2015-11-16 13:52:56 +0000”;\n email = “xxxxx”;\n firstname = xxxxx\n groups = “<null>”;\n initials = xxx;\n lastname = xxxxx;\n middlename = “<null>”;\n name = “<null>”;\n objectId = “2FFCE40C-3095-3237-FF0F-C739D28EC900”;\n ownerId = “<null>”;\n password = “<null>”;\n updated = “2015-11-20 14:07:11 +0000”;\n userId = “2FFCE40C-3095-3237-FF0F-C739D28EC900”;\n userToken = “<null>”;\n}”, “<BackendlessUser> email:‘xxxxxxxx’, password:’<null>’, name:’<null>’, userId:‘E38DC051-82C5-1F30-FF3D-77C3D1103500’, userToken:’(null)’, objectId:‘E38DC051-82C5-1F30-FF3D-77C3D1103500’, properties:{\n “___class” = Users;\n “__meta” = “{\“relationRemovalIds\”:{},\“selectedProperties\”:[\“password\”,\“firstname\”,\“initials\”,\“created\”,\“middlename\”,\“groups\”,\“ownerId\”,\“updated\”,\“objectId\”,\“email\”,\“lastname\”],\“relatedObjects\”:{}}”;\n created = “2015-11-20 14:05:13 +0000”;\n email = “xxxxx”;\n firstname = xxxx;\n groups = “<null>”;\n initials = D;\n lastname = xxxxx;\n middlename = “<null>”;\n name = “<null>”;\n objectId = “E38DC051-82C5-1F30-FF3D-77C3D1103500”;\n ownerId = “<null>”;\n password = “<null>”;\n updated = “2015-11-20 14:05:49 +0000”;\n userId = “E38DC051-82C5-1F30-FF3D-77C3D1103500”;\n userToken = “<null>”;\n}” );}
So that looks fine to me, however as soon as I try this:
func getUsersFromGroups(groupsCollection:BackendlessCollection) {
let currentPage = groupsCollection.getCurrentPage()
print ("count: \(currentPage.count)")
for group in currentPage as! [BLGroup] {
print ("Group: \(group)")
}
}
Then it crashes:
fatal error: NSArray element failed to match the Swift Array Element type
What should I do/try next?