【问题标题】:Swift 2 NSUserDefaults read ArraysSwift 2 NSUserDefaults 读取数组
【发布时间】:2015-09-20 14:33:43
【问题描述】:

我正在将我的应用程序更新到 Swift 2.. 很多错误 uff.. 无论如何,我正在尝试读取 NSuserDefaults 中的存储数组,在 swift 1 中有效,但现在 EXC_Breakdown 出现 nil 错误。我不知道如何解决这个问题...

这就是我的阅读方式:

 var DescriptionArray = save.objectForKey("NewsDescriptions")! as! NSArray

这是我如何保存它(描述是数组):

 var SaveDescription = save.setObject(Description, forKey: "NewsDescriptions")        
  save.synchronize()

【问题讨论】:

    标签: arrays swift nsuserdefaults swift2


    【解决方案1】:

    这是一个示例,说明如何在 Swift 2.0 中将数据存储到 NSUserDefault。它与 Objective-C 的概念非常相似,只是语法不同。

    初始化您的 NSUserDefault 变量:

    let userDefaults = NSUserDefaults.standardUserDefaults()
    

    初始化要保存的数据类型:在您的情况下,您使用了 objectForKey,即使这应该有效,但最好更具体地说明您的代码。

    var DescriptionArray = userDefaults.arrayForKey("NewsDescriptions") 
    

    保存您的数据:

    userDefaults.setObject(Description, forKey: "NewsDescriptions")
    

    那么您可以synchronize 更快地处理保存。

    userDefaults.synchronize()
    

    【讨论】:

    • 只是想知道“代码”的用法从何而来,因为“代码”已经是复数的 WRT 计算机代码。
    • @zaph 是的,是的。我想我想变得更加复数,英语是我的第三语言。大声笑让我休息一下。
    • 好的,我明白了,也许“代码”的使用是美国主义。
    • 我没有提到你,只是想知道为什么我经常看到“代码”,我想知道这是第二(或第三)或英国英语问题。我并不是在暗示你的用法是错误的。
    • @zaph 也许,我的意思是我在美国长大,但我也必须说其他语言,因为我周围都是外国人。但你是对的,应该是code 而不是codes
    【解决方案2】:

    以下是 Swift 2 的示例:

        func saveArray(value: NSArray) {
            NSUserDefaults.standardUserDefaults().setObject(value, forKey:"NewsDescriptions")
            NSUserDefaults.standardUserDefaults().synchronize()
        }
    
        func readArray() -> NSArray {
            return NSUserDefaults.standardUserDefaults().arrayForKey("NewsDescriptions")!
        }
    

    【讨论】:

    • 我认为这根本行不通,因为arrayForKey 返回一个NSArray,而您尝试将它直接作为String 返回。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-15
    • 1970-01-01
    • 2016-01-05
    相关资源
    最近更新 更多