Parse.enableLocalDatastore() - 警告:一个长时间运行的操作正在主线程上执行
Posted
技术标签:
【中文标题】Parse.enableLocalDatastore() - 警告:一个长时间运行的操作正在主线程上执行【英文标题】:Parse.enableLocalDatastore() - Warning: A long-running operation is being executed on the main thread 【发布时间】:2015-02-26 13:38:54 【问题描述】:我还在 dispatch_async 中执行了 Parse.enableLocalDatastore() - 我仍然有警告。
即使我在 warnParseOperationOnMainThread 添加符号断点,它也不会中断
这是来自应用委托的代码片段
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
// Override point for customization after application launch.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0))
Parse.enableLocalDatastore()
Parse.setApplicationId("XXX", clientKey: "YYY")
PFAnalytics.trackAppOpenedWithLaunchOptionsInBackground(launchOptions, block: nil )
var defaultACL = PFACL()
defaultACL.setPublicReadAccess(true)
defaultACL.setPublicWriteAccess(false)
PFACL.setDefaultACL(defaultACL, withAccessForCurrentUser:true)
CAUser.registerSubclass()
NSLog("App finish loading")
dispatch_async(dispatch_get_main_queue())
() -> Void in
// any UI updates need to happen in here back on the main thread
return true
请求
如果有人向我强调,为了避免此警告消息缺少什么?
【问题讨论】:
这里也一样。我相信这是一个错误。 也许可以试试优先背景?此警告是由于某些代码在不应该在主线程上运行,因此阻塞了 UI。如果你 100% 确定它会发生在这里而不是其他地方,那就试试吧。否则我不知道,一切看起来都很好。另一方面,Parse 在某处的回答中明确表示,这些警告只是警告,如果您的应用程序运行顺利,您可以放心地忽略它们。 感谢您的建议,我已尝试将优先级更改为后台,但仍然有相同的警告。关于确保 100% 这条线是原因是的,我有评论并取消注释该行以确保并且我在之前和之后做了一个打印行,我还在该行上添加了一个断点,所以我确定这是此警告的原因。我读到要忽略该错误,但是如果可以避免它,我会更喜欢-它会更好。谢谢 【参考方案1】:这是一个错误,将在下一个 Parse SDK 版本https://developers.facebook.com/bugs/1537241009878763/ 中修复
【讨论】:
Parse SDK 1.6.2 尚未修复该错误。我仍然拥有Parse.enableLocalDatastore + Parse.setApplicationId + PFFacebookUtils.initializeFacebook
(或 Twitter 等效项)以上是关于Parse.enableLocalDatastore() - 警告:一个长时间运行的操作正在主线程上执行的主要内容,如果未能解决你的问题,请参考以下文章