0
我的解析服務器有一個名爲「BooksAddedByUser」類,它有3列:添加唯一值我在解析服務器陣列(SWIFT 3)
- OBJECTID
- 用戶 - 包含PFUser的用戶名.current()
- ISBNArray - 圖書用戶
加我想補充新添加的bookNumber
到ISBNArray只有當它沒有在數組中還存在的ISBN。但是,無論何時我在下面運行我的代碼,它都會在「BooksAddedByUser」類中使用相同的用戶名創建新的objectIds。而且它也不檢查bookNumber是否已經存在。我不確定實際情況如何。
let booksAddedByUser = PFObject(className: "BooksAddedByUser")
booksAddedByUser["user"] = PFUser.current()?.username
let query = PFQuery(className: "BooksAddedByUser")
query.whereKey("ISBNArray", contains: bookNumber)
query.findObjectsInBackground { (objects, error) in
if error != nil {
print(error)
} else {
print(self.bookNumber)
if let objects = objects {
for object in objects {
print("book is already added i think")
}
}
}
}
booksAddedByUser.addObjects(from: [bookNumber], forKey: "ISBNArray")
booksAddedByUser.saveInBackground { (success, error) in
if error != nil {
print("error saving new book")
} else {
print("new book saved!")
}
}
編輯瓦特/新代碼:
let booksAddedByUser = PFObject(className: "BooksAddedByUser")
booksAddedByUser["user"] = PFUser.current()?.username
let query = PFQuery(className: "BooksAddedByUser")
query.findObjectsInBackground { (objects, error) in
if error != nil {
print(error)
} else {
print(self.bookNumber)
if let objects = objects {
if objects.contains(bookNumber) {
print("book exists")
}
}
}
}
booksAddedByUser.addObjects(from: [bookNumber], forKey: "ISBNArray")
booksAddedByUser.saveInBackground { (success, error) in
if error != nil {
print("error saving new book")
} else {
print("new book saved!")
}
}
應該在哪裏我把這個代碼?另外,我仍然需要'query.whereKey(「ISBNArray」,包含:bookNumber)'?對不起,這裏的總菜單 – acoustickat
將'bookNumber'插入到「ISBNArray」之前應該檢查。如果只是將'bookNumber'直接插入到ISBNArray而不是插入一個對象,那麼只要'arrObjects.contains(「bookNumber」){print(「Book exists」)}'就可以完成這項工作。 – Poles
我得到一個錯誤,說「不能將類型'字符串'的值轉換爲期望的參數類型'PFObject'」 – acoustickat