因此,我创建了一个键盘应用程序扩展,该扩展使用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是否已初始化,所以我不重新初始化它并导致崩溃?
答案 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"
}
}
}