У меня есть Object
Swift - Не удалось инициализировать объект в Singleton
class MyObject: NSObject {
// some properties
override init() {
super.init() // not to init other properties here
print("MyObject init!")
}
}
и Singleton
:
class Singleton: NSObject {
static let sharedInstance = Singleton()
var obj: MyObject?
private override init() {
obj = MyObject()
print("obj init")
}
}
Мое приложение может работать (obj init
распечатаны) только если я закомментировать obj = MyObject()
. Если я не прокомментирую это, приложение появится с пустым белым экраном, обратите внимание, что MyObject init
не печатается.
Не могли бы вы показать мне проблемы и как исправить?
Большое спасибо.
- ОБНОВЛЕНИЕ -
я могу инициализировать obj
в didFinishLaunchingWithOption
или любого другого ViewController-х viewDidLoad
:
private let singleton = Singleton.sharedInstance
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// FIXME: - This should be initialized in Singleton
singleton.obj = MyObject()
return true
}