在 Parse Server 中向我的数组添加唯一值(swift 3)
Posted
技术标签:
【中文标题】在 Parse Server 中向我的数组添加唯一值(swift 3)【英文标题】:Add unique values to my array in Parse Server (swift 3) 【发布时间】:2017-10-10 12:02:12 【问题描述】:我的 Parse Server 有一个名为“BooksAddedByUser”的类,它有 3 列:
-
objectId
user - 包含 PFUser.current() 的用户名
ISBNArray - 用户添加的图书的 ISBN
我想将新添加的bookNumber
添加到 ISBNArray 中,前提是它尚不存在于该数组中。但是,每当我在下面运行我的代码时,它都会在“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!")
【问题讨论】:
【参考方案1】:您可以使用以下方法检查对象是否存在于数组中:
if arrObjects.contains(where: $0.bookNumberPropertyName == "bookNumber" )
print("Book exists")
【讨论】:
我应该把这段代码放在哪里?另外,我还需要query.whereKey("ISBNArray", contains: bookNumber)
吗?对不起,这里是菜鸟
在将bookNumber
插入“ISBNArray”之前应进行检查。如果您只将 bookNumber
直接插入 ISBNArray 而不是插入对象,那么只需 if arrObjects.contains("bookNumber") print("Book exists")
就可以完成这项工作。
我收到一条错误消息,提示“无法将 'String' 类型的值转换为预期的参数类型 'PFObject'”
请给我看你的新代码。同时分享PFObject
结构。
我已经更新了上面的代码。我将 Parse 框架导入到我的项目中,这就是我得到 PFObject
结构的地方:docs.parseplatform.org/ios/guide/#objects以上是关于在 Parse Server 中向我的数组添加唯一值(swift 3)的主要内容,如果未能解决你的问题,请参考以下文章
如何在 OnChangeText 中向我的组件 inputText 添加两个状态
如何在我的视图控制器中向我的“全部删除”和“保存”按钮添加警报?