【问题标题】:(lldb) error when running on device but not simulator(lldb)在设备上运行但不是模拟器时出错
【发布时间】:2016-06-08 10:40:19
【问题描述】:

Click here to see the screenshot of the code.

我正在制作一个列表应用程序,我正在为我要在再次打开应用程序时加载的“列表”保存数组。 奇怪的是我在模拟器上工作,而不是在设备上。 (看截图了解)

        feedCells = (NSUserDefaults.standardUserDefaults().objectForKey("feedCellsData") as? [String])!  

这就是它不断崩溃的线路。

我已尝试将其更改为可选值。但我找不到任何似乎有帮助的东西..

【问题讨论】:

    标签: xcode swift lldb


    【解决方案1】:

    首先检查您的设备 iOS 版本是否为 iOS 8 或更高版本。如果小于,则在将值设置为 NSUserDefaults 后也使用 synchronize()。

    您正在强制展开(使用!)您从 Down Casting(使用 as?)获得的可选值。

    您还可以通过检查您从 NSUserDefaults 获取的值是否为非 nil 来解决此崩溃问题,然后将其分配给您的 feedCells var。

    let cells = NSUserDefaults.standardUserDefaults().objectForKey("feedCellsData") as? [String]
    if cells != nil {
        feedCells = cells
    }
    

    将 feedCells var 设为可选项并删除“!”从出现错误的行的末尾开始。

    var feedCell : [String]?
    feedCells = NSUserDefaults.standardUserDefaults().objectForKey("feedCellsData") as? [String]
    

    【讨论】:

    • 这帮助很大。应该有更多像你这样的人!
    • 接受并向上投票如果对您有帮助,请单击向右和向上箭头按钮。
    最近更新 更多