我試圖將用戶總數存儲在列中,並查看用戶是否已經存在,如果存在,它不會創建新的對象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。這是我遇到的主要問題。因爲現在循環的第一部分總是執行。 –