【发布时间】:2015-03-16 17:25:22
【问题描述】:
我有并排的目标/快速代码。我正在调用 swift 单例方法 3 次。三遍后就崩溃了。我有理由相信这可能是内存问题。这是我的代码
ViewController.m
-(void)sharedData
{
// called three times
sharedData = [SharedData sharedData];
[sharedData initSyncManager];
}
Swift sharedData 类
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 次,则不会发生崩溃。
【问题讨论】:
-
我认为您在创建单例时遇到了问题,请阅读此code.martinrue.com/posts/the-singleton-pattern-in-swift
-
我尝试了提供的单例,但遗憾的是它没有工作。
-
单例的最佳实现:一点也不。我是认真的。退一步问自己:“它真的需要单例吗?”,例如我不再使用它们,我只是传入创建视图控制器期间需要的任何对象或通过属性传递它。为什么?因为单例很容易搞砸你的测试和内存。
标签: ios objective-c swift singleton