iOS Swift:关于单身人士的EXC_BAD_ACCESS(代码= EXC_i386_GPFLT)

时间:2015-03-13 19:12:21

标签: ios objective-c swift singleton

我的iOS应用正在返回此错误。

  

EXC_BAD_ACCESS(代码= EXC_i386_GPFLT)

return Singleton.instance这是关于我正在使用的单身人士的代码。

class var sharedData : SharedData {
    struct Singleton {
        static let instance = SharedData()
    }

    return Singleton.instance
}

有人可以帮我理解这个错误并帮我解决吗?任何建议或提示都表示赞赏。

4 个答案:

答案 0 :(得分:1)

您可以使用以下代码替换所有代码:

static let sharedData = SharedData()

答案 1 :(得分:1)

使用Swift 1.2,现在可以更轻松地创建单例:

class DataManager {
    static let sharedInstance = DataManager()

    /// To deny direct access, make your init function private if you want
    private init() {
    }
}

答案 2 :(得分:1)

我正在使用其他人如上所述的单身人士,

static let sharedData = SharedData()

它在真实设备上崩溃但在模拟器中没有崩溃。事实证明,我只需要清理项目并重建。 不要因为误报而堕落;)

答案 3 :(得分:-1)

我的Swift单例类中有一个命名错误的函数,它在调用时一定是在绊倒ARC。这个类从文件初始化另一个类,所以我最终得到了这个签名:

func initOtherClass(otherClass: NSObject, URL fileURL: NSURL) -> Bool

糟糕。将名称从init更改为initialize可解决EXC_BAD_ACCESS错误。我希望这有助于拯救别人一段时间。