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