У меня странный EXC_BAD_ACCESS cra sh, я пытаюсь инициализировать объект, используя синглтон, как это:
@objc final class Toto: XSuperClass {
/// Singleton
@objc static var instance = Toto()
/// Hide the creator to force using singleton
@objc private init() {
print("Initializer is called !")
super.init(
"xyz",
serverHost: "",
serverPath: ""
)
}
@objc func update() {
...
}
XSuperClass расширяется от NSObject и содержится в модуле.
В Appdelegate:
-(void)applicationDidBecomeActive:(UIApplication *)application
{
[[Toto instance] update];
}
Иногда происходит сбой при: @objc static var instance = Toto() Thread 1: EXC_BAD_ACCESS (code=1, address=0x9)
Поток 1 содержит:
#11 0x0000000105a20004 in Toto.instance.unsafeMutableAddressor at /Users/.../Toto.swift
#10 0x00000001076196d9 in swift_once ()
#8 0x0000000107e5ad48 in _dispatch_client_callout ()
#7 0x0000000105a1ff90 in globalinit_33_0DC663E05309E94BD36536F7E931D58A_func0 at /Users/../Toto.swift
#6 0x0000000105a21028 in type metadata accessor for Toto ()
#0 0x0000000107602737 in swift_checkMetadataState ()
XSuperClass:
/** This class is the base class that handles ... */
@objc open class XSuperClass: NSObject {
...
/// Main initializer
public init(_ feature: String,
... dependencies that all have default values,
serverHost: String?,
serverPath: String?
) {
self.feature = feature
...
self.serverHost = serverHost
self.serverPath = serverPath
}
Кажется, что я пытаюсь инициализировать освобожденный объект в памяти, но не могу понять, как это исправить, я потратил много времени на изучение проблемы без удачи Любые идеи, пожалуйста?
[редактировать] этот CRA SH происходит только на IOS 13