dictionary - 带有字典的 iOS 8.1 上的 EXC_BAD_ACCESS

标签 dictionary swift ios8.1

我有一个可通过结构中的静态变量访问的对象(解决方法是目前在 swift 中缺少类变量支持),结构如下:

struct Constants{
    static var myObj = MyObject()
}

MyObject 中有一个字典,如下所示:

class MyObject{
    private var params = Dictionary<String,AnyObject>()

    func addParam(key:String, value:AnyObject){
        params[key] = value
    }
}

现在第一次为 Contants.myObj.addParam("param", value:123) 调用这个对象时,一切都很好,params 有内容 ["param":123] 。在第二次调用 Contants.myObj.addParam("param", value:456) 时,我得到一个 EXC_BAD_ACCESS。

但问题是,这只发生在 iOS 8.1 中。此外,如果我将行 let stupidHack = self.params 添加为我的 addParam 方法的第一行,它工作正常。我的假设是它处理字典的可变性。 let 可能会以某种方式触发字典在初始化后再次可变。

有没有其他人遇到过这个问题?知道如何解决吗?

谢谢!

最佳答案

看起来像是一个编译器错误。

您是否尝试过在 Release 和 Debug 之间切换然后重建?如果调试有效但未发布,则可能表示存在编译器/优化器错误。

它是否也发生在模拟器中?

你的代码适用于 iOS 8.1 和 XCode 6.1。

关于dictionary - 带有字典的 iOS 8.1 上的 EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26809986/

相关文章:

ios - Xcode 6.1 构建在设备上崩溃

一个游戏的英文单词列表

swift - 从字典生成章节标题 [Swift 3]

ios - 当另一个元素(在本例中为蓝牙)状态发生变化时,如何更改 @IBAction 按钮的图像?

ios - 如何使用iOS SDK授权和登录微信?

ios - 当我滚动 UiTableView 时,TextLabel 颜色自动改变

ios - UITextView 内容在增加高度的同时改变位置

python - 将单个值分配给具有多个值的字典键中的单个键

python - 空字典作为 dict.get() 的默认值

ios - 使用未声明的类型 'AppDelegate' Swift