我的架构如下:
我们创建一个单例 BusinessLogic 实例,其中包含多个类别,由扩展中定义的类表示。
class BusinessLogic {
static let shared = BusinessLogic()
private(set) var foo: FooCategory = FooCategory()
}
在另一个文件中,我们定义类别。
extension BusinessLogic {
class FooCategory {
var hasNewItems: Bool = false
}
}
实际上,类要大得多,但这些是相关的部分。
从我的 View Controller 中,我访问如下属性
BusinessLogic.shared.foo.hasNewItems
这是在整个应用程序中完成的,通常不会出现问题。但在此示例中,我们访问 UITabBarController 的 viewDidLoad 上的 hasNewItems 属性,这有时会导致崩溃。这对我来说是无法解释的。
有人知道什么可能导致崩溃吗?我们甚至可以在 AppDelegate 内的 appStart 上访问 BusinessLogic 类,一切正常。
最佳答案
似乎有一个属性实际上为零(正如 @Rishabh 所建议的那样)。我认为发布整个解决方案对您没有任何用处,因为它是针对我的应用程序的。
关于ios - 访问单例中的非可选属性时出现无法解释的崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46538355/