gpt4 book ai didi

iOS swift : Calling a singleton method 3 times causes app to crash

转载 作者:可可西里 更新时间:2023-11-01 02:23:44 24 4
gpt4 key购买 nike

我有并排的目标/快速代码。我调用了 swift 单例方法 3 次。三次后它崩溃了。我有理由相信这可能是内存问题。这是我的代码

ViewController.m

-(void)sharedData
{
// called three times
sharedData = [SharedData sharedData];
[sharedData initSyncManager];
}

Swift 共享数据类

class func sharedData() -> SharedData 
{
struct Singleton
{
static let instance = SharedData()
}
return Singleton.instance
}

func initSyncManager()
{

}

这一行的错误是EXC_BAD_ACCESS (code=EXC_i386_GPFLT)

'return Singleton.instance'

我不知道为什么会这样。我在 initSyncManager 中根本没有代码,只有在我使用这段代码时才会发生此崩溃

[sharedData initSyncManager];

如果我不调用该方法 3 次,则不会发生崩溃。

最佳答案

你可以试试这个,因为我正在使用它(在 Swift 2.1 中)创建单例类并且它对我来说工作正常:

class var sharedInstance: SharedData {
struct Static {
static var onceToken: dispatch_once_t = 0
static var instance: SharedData? = nil
}
dispatch_once(&Static.onceToken) {
Static.instance = SharedData()
}
return Static.instance!
}

override init() {
super.init()
//initialisation
}

关于iOS swift : Calling a singleton method 3 times causes app to crash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29083179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com