如何检查Parse是否已初始化

时间:2019-12-30 09:27:30

标签: swift parse-platform parse-server ios-app-extension

因此,我创建了一个键盘应用程序扩展,该扩展使用Parse来获取一些所需的数据。键盘加载后,我初始化了Parse:

func connectParser() {
// Initialize Parse
        let configuration = ParseClientConfiguration {
            $0.applicationId = "BlahBlahBlah123456"
            $0.clientKey = "BlahBlahBlah123456"
            $0.server = "https://parseapi.back4app.com"
        }
        Parse.initialize(with: configuration)
}

注意:初始化通常是在AppDelegate中完成的,但是由于这是一个App Extension,所以我在首先加载的主InputView中进行了

当用户在加载键盘后退出键盘,然后尝试切换回键盘时,会出现问题。扩展程序崩溃,出现以下错误:

  

由于未捕获的异常“ NSInternalInconsistencyException”而终止应用程序,原因:“解析已初始化。”

如何检查Parse是否已初始化,所以我不重新初始化它并导致崩溃?

1 个答案:

答案 0 :(得分:0)

所以我在任何地方都没有找到任何真正的解决方案,但是我确实找到了自己的解决方案,我将其保留在这里并回答我自己的问题,以防其他任何人遇到这个问题:

基本上,我检查是否Parse.currentConfiguration() == nil

如果是,那么我知道Parse尚未初始化。我不知道这是否是解决此问题的最佳方法,因此,如果您有更好的选择,请将其添加为答案。

最终功能如下:

func connectParse() {

    if Parse.currentConfiguration() == nil {
        // Initialize Parse
        let configuration = ParseClientConfiguration {
            $0.applicationId = "BlahBlahBlah123456"
            $0.clientKey = "BlahBlahBlah123456"
            $0.server = "https://parseapi.back4app.com"
        }
    }
}