gpt4 book ai didi

json - 获取对象的索引返回 nil

转载 作者:行者123 更新时间:2023-11-30 13:35:43 24 4
gpt4 key购买 nike

我正在尝试以一对多关系获取对象(用户)的索引。它返回零。

    import Foundation

class Groups : NSObject{

var groupName: String?
var UsersInGroup = [BackendlessUser]()
var ownerId: String?
var objectId : String?

}

func getIndex() {

self.backendless.userService.getPersistentUser()
let user = self.backendless.userService.currentUser


var dataStore = backendless.data.of(Groups.ofClass())
dataStore.findID(
"B52F6BEA-79F8-A58B-FF15-AF840BCB2A00",
response: { (result: AnyObject!) -> Void in
var LookingForGroupJoining = result as! Groups
// LookingForGroupJoining.UsersInGroup.append(user)
let index = LookingForGroupJoining.UsersInGroup.indexOf(user)
print("This is the index number : \(index)")
print("This is the user : \(user)")
print("These are all the values of the UsersInGroup : \(LookingForGroupJoining.UsersInGroup)")


dataStore.save(
LookingForGroupJoining,
response: { (result: AnyObject!) -> Void in
let GroupJoining = result as! Groups
print("Group has been saved: \(GroupJoining.groupName)")

},
error: { (fault: Fault!) -> Void in
print("Server reported an error (1): \(fault)")
})


print("Group has been found: \(LookingForGroupJoining.objectId)")
},
error: { (fault: Fault!) -> Void in
print("Server reported an error (2): \(fault)")
})
}

这是控制台输出

This is the index number : nil
This is the user : <BackendlessUser> {
"__meta" = "{\"relationRemovalIds\":{},\"selectedProperties\":[\"__updated__meta\",\"password\",\"created\",\"name\",\"___class\",\"ownerId\",\"updated\",\"objectId\",\"email\"],\"relatedObjects\":{}}";
created = "2016-03-07 06:06:40 +0000";
email = "test@test.com";
lastLogin = "2016-03-11 04:30:01 +0000";
name = "<null>";
objectId = "4A955ADD-7991-1AF8-FFEF-3754587B2300";
ownerId = "<null>";
updated = "<null>";
"user-token" = "18C87E0E-2BB3-DB1D-FF63-3CD5FE003200";
}
These are all the values of the UsersInGroup : [<BackendlessUser> {
"___class" = Users;
created = "2016-03-07 03:45:05 +0000";
email = "lekan.adeyeri@gmail.com";
name = test;
objectId = "0EB97FF9-FBF1-2E7E-FF30-160BB6CFFC00";
ownerId = "<null>";
password = "<null>";
updated = "2016-03-18 22:33:02 +0000";
}, <BackendlessUser> {
"___class" = Users;
created = "2016-03-07 06:06:40 +0000";
email = "test@test.com";
name = "<null>";
objectId = "4A955ADD-7991-1AF8-FFEF-3754587B2300";
ownerId = "<null>";
password = "<null>";
updated = "2016-03-18 22:33:02 +0000";
}, <BackendlessUser> {
"___class" = Users;
created = "2016-03-06 04:15:27 +0000";
email = "tesbhjbj@ttt.tyy";
name = "<null>";
objectId = "570CD92B-74EB-1325-FF8F-B866CB6CB400";
ownerId = "<null>";
password = "<null>";
updated = "2016-03-18 22:33:02 +0000";
}, <BackendlessUser> {
"___class" = Users;
created = "2016-03-05 04:50:14 +0000";
email = "test@testmail.test";
name = test;
objectId = "A0831585-716E-B027-FF37-539497748400";
ownerId = "<null>";
password = "<null>";
updated = "2016-03-18 22:33:02 +0000";
}, <BackendlessUser> {
"___class" = Users;
created = "2016-03-05 14:54:53 +0000";
email = "test1@testmail.test";
name = test;
objectId = "C8A47476-E5D2-B84D-FF5A-2EB605040400";
ownerId = "<null>";
password = "<null>";
updated = "2016-03-18 22:33:02 +0000";
}]

我正在尝试以一对多关系获取对象(用户)的索引。它返回零。

最佳答案

找到解决方法

func leavingGroup() {

self.backendless.userService.getPersistentUser()
let user = self.backendless.userService.currentUser

var dataStore = backendless.data.of(Groups.ofClass())
dataStore.findID(
"B52F6BEA-79F8-A58B-FF15-AF840BCB2A00",
response: { (result: AnyObject!) -> Void in
var LookingForGroupJoining = result as! Groups

var groupList = LookingForGroupJoining.UsersInGroup.description
// “Cleaned” groupList of unnecessary data and created groupListCleaned
var groupListCleaned: String = groupList.stringByReplacingOccurrencesOfString("\"", withString: "").stringByReplacingOccurrencesOfString("<BackendlessUser> {", withString: "").stringByReplacingOccurrencesOfString(" ", withString: "").stringByReplacingOccurrencesOfString("___class=Users;", withString: "").stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()).stringByReplacingOccurrencesOfString("},", withString: "").stringByReplacingOccurrencesOfString("]", withString: "").stringByReplacingOccurrencesOfString("}", withString: "").stringByReplacingOccurrencesOfString("[", withString: "").stringByReplacingOccurrencesOfString("created=", withString: "").stringByReplacingOccurrencesOfString("email=", withString: "").stringByReplacingOccurrencesOfString("name=", withString: "").stringByReplacingOccurrencesOfString("objectId=", withString: "").stringByReplacingOccurrencesOfString("ownerId=", withString: "").stringByReplacingOccurrencesOfString("password=", withString: "").stringByReplacingOccurrencesOfString("updated=", withString:"").stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())



// Converting groupListClean from a string to an array called arrayofUsers, where the arrays values are anything between whitespace, so the string cookie = “chocolate cake hottea” would be an array [“chocolate”, “cake”, “hottea"]

let arrayofUsers: Array = groupListCleaned.componentsSeparatedByCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())

// Converting arrayofUsers into string, and replacing some characters. I did the filter here instead of groupList because it produced different results, and I preferred these results here.
var groupListClean2: String = arrayofUsers.joinWithSeparator("").stringByReplacingOccurrencesOfString(";", withString: ",")


// Once I’ve cleaned the string completely, I’m turning it into an array again called arrayofUsers2. I’m separating everything with a coma.
var arrayofUsersData: Array = groupListClean2.componentsSeparatedByString(",")

// I’m getting the index number of the current user's objectId in the data. It pulls out the index of one property belonging to one user, in a list of properties belonging to many users.
var indexnumber = arrayofUsersData.indexOf(user.objectId)
var indexnumber2 = indexnumber
var index = 0

// Since objectIds are always in the same location (7 sway from the next), if its less than really 6 (I set 3 to be safe), then its the users index is 0. If its not, then I’ll keep subtracting by 7, and incrementing the index value each time I subtract. Each user can be identified by jumping 7 indexes, this shows me how many times I have to do that jump, the amount of times is where the user is.

if indexnumber2 <= 3 {
index = 0
} else {
repeat {

indexnumber2 = indexnumber2! - 7
index = index + 1
} while indexnumber2 > 3
}


LookingForGroupJoining.UsersInGroup.removeAtIndex(index)

dataStore.save(
LookingForGroupJoining,
response: { (result: AnyObject!) -> Void in
let GroupJoining = result as! Groups
print("Group has been saved: \(GroupJoining.groupName)")

},
error: { (fault: Fault!) -> Void in
print("Server reported an error (1): \(fault)")
})


print("Group has been found: \(LookingForGroupJoining.objectId)")
},
error: { (fault: Fault!) -> Void in
print("Server reported an error (2): \(fault)")
})
}

关于json - 获取对象的索引返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36095540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com