PFQuery findObjectsInBackgroundWithBlock:in-WatchKit应用程序在模拟器中工作,除非iOS应用程序在前台,否则不在手表上工作
我正在编写一个WatchKit应用程序,它需要向我们的解析服务器进行查询。由于这是一个网络呼叫,我遵循以下过程:PFQuery findObjectsInBackgroundWithBlock:in-WatchKit应用程序在模拟器中工作,除非iOS应用程序在前台,否则不在手表上工作,ios,objective-c,parse-platform,watchkit,apple-watch,Ios,Objective C,Parse Platform,Watchkit,Apple Watch,我正在编写一个WatchKit应用程序,它需要向我们的解析服务器进行查询。由于这是一个网络呼叫,我遵循以下过程: 我使用openParentApplication:reply: 在handleWatchKitExtensionRequest:userInfo:reply:的内部,我使用UIBackgroundTaskIdentifier启动后台任务,以确保iOS应用程序不会立即终止 我设置我的PFQuery并调用findobjectsinbackgroundithblock: 在我传递给PFQu
openParentApplication:reply:
handleWatchKitExtensionRequest:userInfo:reply:
的内部,我使用UIBackgroundTaskIdentifier
启动后台任务,以确保iOS应用程序不会立即终止PFQuery
并调用findobjectsinbackgroundithblock:
findobjectsinbackgroundithblock:
不会实际调用该块,执行似乎只是停止
有人知道会发生什么吗?我最初的想法是,iOS应用程序在完成查询之前就被挂起/杀死了,但我很确定后台任务会阻止这一点
注:如果有人偶然发现这个问题,因为他们正在寻找如何让WatchKit应用程序在实际手表上运行,我发现它的运行非常有帮助。结果发现,我有几个与openParentApplication相关的问题:回复:,它们似乎都通过使用本文中的技术得到了解决:
我已经为我自己的应用程序启动了一个后台任务,但我没有使用本文中描述的“虚假解决方案”后台任务,因为我不需要在模拟器中使用它。不过,从手表上看,显然是这样。你有没有发现iPhone应用程序中的UIApplicationLegate从未调用过reply()错误?我遇到了一些类似的问题。我从来没有收到过那个特定的错误消息,但可能那个错误消息后来被添加到了Xcode 6.3.1或6.3.2中——这就是问题所在。请看下面我接受的答案,这有帮助吗?基本上,我很确定在解析查询返回之前,iOS应用程序是在后台被杀死的。