Parse.enableLocalDatastore() - 警告:正在主线程上执行一个长时间运行的操作。

8

我已经在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
    }  

请求

希望有人能够指出,如何避免这个警告信息?


同样的问题。我相信这是一个错误。 - alioguzhan
也许尝试使用优先级后台?这个警告是由于某些代码在主线程上运行时不应该运行,从而阻塞了UI。如果您100%确定它发生在这里而不是其他地方,请尝试一下。否则我不知道,一切看起来都很好。另一方面,Parse明确表示在某个答案中,这些警告只是警告,如果您的应用程序仍然顺畅运行,您可以安全地忽略它们。 - Gil Sand
谢谢您的建议,我已经尝试将优先级更改为后台,但仍然出现相同的警告。 关于确保这行代码是原因,是的,我已经注释和取消注释了该行代码以确保,并且在此之前和之后添加了打印语句,还在该行上添加了断点,所以我确定这是导致警告的原因。 我已经阅读了忽略错误的方法,但如果能避免它会更好。谢谢。 - gfekri
1个回答

2

2
这个 bug 在 Parse SDK 1.6.2 中还没有被修复。我在使用 Parse.enableLocalDatastore + Parse.setApplicationId + PFFacebookUtils.initializeFacebook(或 Twitter 的等价物)时仍然遇到了它。 - Kalzem

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接