gpt4 book ai didi

ios - 什么可能导致 Swift sharedInstance 返回上的 EXC_BREAKPOINT

转载 作者:行者123 更新时间:2023-11-29 01:28:33 31 4
gpt4 key购买 nike

我在 sharedInstance return Static.instance! 行发生以下崩溃:

EXC_BREAKPOINT 0x0000000100da42d8

崩溃发生在没有调试断点的 Ad Hoc 发布版本中。根据崩溃的调用堆栈,sharedInstance 应该在崩溃时已经存在(它首先在应用启动时调用,崩溃发生在按钮点击时)。

崩溃发生在装有 iOS 8.4.0 的 iPad Air 2 上,构建是在 Xcode 7.1.1 中使用 Swift 2.1 编译器编译的

App 本身(在启动时调用 sharedInstance)和 DataSource 类位于不同的模块中。可能是来自框架的类与 DataSource 类静态结构不同吗?

@objc public final class DataSource : NSObject
{
public class var sharedInstance: DataSource
{
struct Static
{
static var instance: DataSource?
static var token: dispatch_once_t = 0
}

dispatch_once(&Static.token)
{() -> Void in
Static.instance = DataSource()
}
return Static.instance!
}

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

最佳答案

GCD 支持静态单例,所以这是推荐的语法

@objc public final class DataSource : NSObject
{
class var sharedInstance : DataSource {
struct Static {
static let sharedInstance = DataSource()
}
return Static.sharedInstance
}

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

关于ios - 什么可能导致 Swift sharedInstance 返回上的 EXC_BREAKPOINT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33745094/

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