在 Parse Server 中向我的数组添加唯一值 (swift 3)
Add unique values to my array in Parse Server (swift 3)
我的 Parse Server 有一个名为 "BooksAddedByUser" 的 class,它有 3 列:
- objectId
- user - 包含 PFUser.current()
的用户名
- ISBNArray - 用户添加的图书的 ISBN
我想将新添加的 bookNumber
添加到 ISBNArray 中,前提是它还不存在于该数组中。但是,每当我 运行 下面的代码时,它都会在 class "BooksAddedByUser" 中创建具有相同用户名的新 objectId。而且它也不检查 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!")
}
}
您可以使用以下方法检查数组中是否存在对象:
if arrObjects.contains(where: { [=10=].bookNumberPropertyName == "bookNumber" }) {
print("Book exists")
}
我的 Parse Server 有一个名为 "BooksAddedByUser" 的 class,它有 3 列:
- objectId
- user - 包含 PFUser.current() 的用户名
- ISBNArray - 用户添加的图书的 ISBN
我想将新添加的 bookNumber
添加到 ISBNArray 中,前提是它还不存在于该数组中。但是,每当我 运行 下面的代码时,它都会在 class "BooksAddedByUser" 中创建具有相同用户名的新 objectId。而且它也不检查 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!")
}
}
您可以使用以下方法检查数组中是否存在对象:
if arrObjects.contains(where: { [=10=].bookNumberPropertyName == "bookNumber" }) {
print("Book exists")
}