swift - Parse Server Swift Logic 用于抓取数组中包含的所有项目
问题描述
我正在使用带有 Swift 的解析服务器。我正在尝试获取关键“用户名”包含在commentUserArray 中的所有匹配项。注释 userArray 显示 3 个名称 ["username","username", "username2"]。
该查询仅获取两个值而不是三个值,因为它仅查找这两个用户名“username”和“username1”。但是,我需要所有 3 个实例。请帮忙。
var commentImgUrlArray: [NSString] = []
func getPics(_ completionHandler: @escaping () -> Void) {
let query = PFQuery(className: "_User")
query.whereKey("username", containedIn: commentUserArray)
query.findObjectsInBackground(block: { (objects: [PFObject]?, error: Error?) in
if let objects = objects {
for object in objects {
if error == nil {
let imageFile = object["profilePic"] as? PFFileObject
let imageFileString = imageFile?.url as! String
if let url = URL(string: imageFileString) {
let data = try? Data(contentsOf: url)
if let imageData = data {
self.commentImgUrlArray.append(imageFileString as NSString)
print(self.commentImgUrlArray)
}
}
}
}
completionHandler()
}
})
}
解决方案
因此,经过反复试验,我遇到了解决方案。
删除原始 query.contained in,因为它会覆盖公式的其余部分。
理想情况下,我想运行一个查询。在commentuserarray 中没有多少。因此,for in 循环应该放在 query.find 中 -->
需要为该特定用户抓取对象。因此,设 pfuser = object["username"] as String
反转数组以获得正确的顺序 -
func getPics(_ completionHandler: @escaping () -> Void) { let query = PFQuery(className: "_User") query.findObjectsInBackground(block: { (objects: [PFObject]?, error: Error?) in if let objects = objects { for object in objects { if error == nil { for user in self.commentUserArray { let pfuser = object["username"] as! String if pfuser == user { let imageFile = object["profilePic"] as? PFFileObject let imageFileString = imageFile?.url as! String if let url = URL(string: imageFileString) { let data = try? Data(contentsOf: url) if let imageData = data { self.commentImgUrlArray.append(imageFileString as NSString) print(self.commentImgUrlArray) } } } } } } self.commentImgUrlArray.reverse() completionHandler() } })
}
推荐阅读
- xml - 使用 xsl 消除 xml 中的空格
- python - 尝试使用 pgmpy 贝叶斯模型进行预测时出错
- go - 如何为现有接口实现方法
- docker - 尝试通过 AJP 将非 Docker Apache 连接到 Docker Tomcat 时出现“ajp_ilink_receive failed”
- reactjs - How to not remap array on state change, but only render what is changed?
- python - 使用 Google 附近的地方 pagetoken?
- javascript - 如何使用 Typescript 在 Parse 服务器中获取扩展用户的类型化嵌套对象?
- jboss - 更改 JBPM Web 客户端中的网站图标
- kotlin - Compose beta01 - java.lang.IllegalStateException: 尝试实现组两次
- java - 无法使用 spring ClassPathScanningCandidateComponentProvider 返回所有标有特定注释的类