Swift Parse - 此查询有一个突出的网络连接错误
Posted
技术标签:
【中文标题】Swift Parse - 此查询有一个突出的网络连接错误【英文标题】:Swift Parse - This query has an outstanding network connection error 【发布时间】:2017-11-22 18:41:14 【问题描述】:在同一个视图控制器上进行多个查询时,我无法使用解析,我知道它们需要是异步的,这就是问题所在,但我不知道如何解决这个问题。我在这个页面上有 3 个按钮,一个显示用户的 pod,一个显示他的关注者,一个显示他正在关注的人。代码如下:
// Query for user's pods
let podQuery = Pod.query()
podQuery?.whereKey("createdBy", equalTo: currentUser as Any)
podQuery?.includeKey("audio")
podQuery?.findObjectsInBackground(block: (objects, error) in
if error != nil
print("Error")
else if let pods = objects
self.pods.removeAll()
for pod in pods
if let pod = pod as? Pod
self.pods.insert(pod, at: 0)
self.tableview.reloadData()
)
//Query for the user's subscribers
let subscribersQuery = Following.query()
subscribersQuery?.whereKey("following", equalTo: PFUser.current()?.objectId as Any)
subscribersQuery?.includeKey("following")
subscribersQuery?.findObjectsInBackground(block: (objects, error) in
if let objects = objects
for object in objects
self.subscribers.insert(object as! PFUser, at: 0)
)
//Query for the users that the user is subscribed to
let subscribedQuery = Following.query()
subscribedQuery?.whereKey("follower", equalTo: PFUser.current()?.objectId as Any)
subscribersQuery?.includeKey("follower")
subscribedQuery?.findObjectsInBackground(block: (objects, error) in
if let objects = objects
for object in objects
self.subscribed.insert(object as! PFUser, at: 0)
)
我在第 2 次和第 3 次查询中遇到错误。
*** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“此查询具有未完成的网络连接。你必须等到它完成。'
如果问题需要更多上下文/代码,请告诉我。谢谢你
【问题讨论】:
【参考方案1】:我认为按照描述,您可能是指:
let subscribersQuery = Followers.query() //Not Following.query()??
在这种情况下,进行此更改将使错误消失。如果您的意思是“关注”,那么这可能是问题所在:
我遇到了这个问题,原因是我在后续解析访问中使用了相同的查询对象。这是否适合您取决于 PFObject.query() 的行为方式。我发现文档不够清楚。如果它返回一个先前兑现的查询,那么:
let subscribersQuery = Following.query()
//....
subscribersQuery?.findObjectsInBackground(block: (objects, error) in(
//..
let subscribedQuery = Following.query()
//....
subscribedQuery?.findObjectsInBackground(block: (objects, error) in(
//..
在这里,您正在对同一查询执行 findObjectsInBackground,这将导致错误。 在显式创建新查询的地方试试这个。这对我有用:
subscribersQuery = PFQuery(className: Following) //Again, did you mean Followers here?
subscribedQuery = PFQuery(className: Following)
【讨论】:
以上是关于Swift Parse - 此查询有一个突出的网络连接错误的主要内容,如果未能解决你的问题,请参考以下文章
使用 Parse Swift 在 mongoDB 上进行查询