我试图将用户总数存储在列中,并查看用户是否已经存在,如果存在,它不会创建新的对象ID,但如果不存在那么它会创建一个新的对象ID。在附件中,即使用户已经存在,它也会创建多个对象标识符,因此不会更新分数,而是创建新分数,并且永远不会留下if语句的第一部分,因为只有该行的对象标识位于那里并没有用户对象ID。将用户指针列保存到数组解析swift
这是我的代码:
func saveScoresOnParse() {
var objectUserIdArray = [String]()
let objectUserIdQuery : PFQuery = PFQuery(className: "Scores")
objectUserIdQuery.findObjectsInBackgroundWithBlock {
(objects : [PFObject]? , error : NSError?) -> Void in
var objectID = objects! as [PFObject]
for i in 0..<objectID.count {
objectUserIdArray.append(objectID[i].objectId!)
}
for _ in objectID {
print(objectUserIdArray)
}
for (var i = 0 ; i < objectUserIdArray.count ; i++) {
if self.userID != objectUserIdArray[i] {
print("New Scores")
print("R: \(self.rightAnswers)")
print("W: \(self.wrongAnswers)")
print("S: \(self.skippedQuestions)")
self.scores["User"] = PFUser.currentUser()
self.scores["Right"] = self.rightAnswers
self.scores["Wrong"] = self.wrongAnswers
self.scores["Skipped"] = self.skippedQuestions
self.scores.saveInBackground()
} else if self.userID == objectUserIdArray[i] {
print("Updates Scores")
self.scores.incrementKey("Right", byAmount: 1)
self.scores.incrementKey("Wrong", byAmount: 1)
self.scores.incrementKey("Skipped", byAmount: 1)
print("R: \(self.rightAnswers)")
print("W: \(self.wrongAnswers)")
print("S: \(self.skippedQuestions)")
self.scores.saveInBackgroundWithBlock {
(success: Bool, error: NSError?) -> Void in
if (success) {
// The score key has been incremented
} else {
// There was a problem, check error.description
}
}
} else {
print("Error")
}
}
}
这是发生了什么:
谢谢你的问题!但主要问题仍然存在,如何可以存储User列而不是Object ID列,并查看当前用户对象ID是否已经存在?因为现在仍然'self.userID'永远不会等于它会继续创造新的分数并且永远不会更新分数。 –
这篇文章是否回答了您的问题,请标记为正确。 – Acoop
哈哈我有,但这不是主要问题。存储在'objectUserIDArray'中的东西不是我在swift中用户列中的对象id。它在Object Id列中的对象ID。这是我遇到的主要问题。因为现在循环的第一部分总是执行。 –