【问题标题】:How to check if Parse initialized already如何检查 Parse 是否已经初始化
【发布时间】:2019-12-30 09:27:30
【问题描述】:

所以我创建了一个键盘应用扩展,它使用 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 中完成,但由于这是一个应用扩展,我在首先加载的主 InputView 中进行了初始化

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

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

如何检查 Parse 是否已经初始化,以免重新初始化并导致崩溃?

【问题讨论】:

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


    【解决方案1】:

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

    基本上我会检查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"
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多