如何检查 Parse 是否已经初始化

How to check if Parse initialized already

所以我创建了一个键盘应用程序扩展,它使用 Parse 来获取一些需要的数据。我在键盘加载后初始化了 Parse,如下所示:

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

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

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

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Parse is already initialized.'

如何检查 Parse 是否已经初始化,这样我就不会重新初始化它并导致崩溃?

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

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

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

最终函数如下所示:

func connectParse() {

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