【问题标题】:How do I set an array of arrays in NSUserDefaults?如何在 NSUserDefaults 中设置数组数组?
【发布时间】:2015-07-30 04:27:19
【问题描述】:

我想使用 NSUserDefaults 设置一个数组数组,如下所示:

let array = [["Mexico","USA","Canada"],["Mexico City","Washington","Ottawa"]]

NSUserDefaults.standardUserDefaults().setObject(array, forKey:"Countries")

然后我尝试访问它

var recalledArray = NSUserDefaults.standardUserDefaults().objectForKey("Countries") as! NSArray
println(recalledArray)

但这是控制台打印的内容:

(
    "\U00bfMexico",
    "\U00bfUSA",
    "Canada"
)

我只得到第一个数组,缺少第二个:

["Mexico City","Washington","Ottawa"]

为什么我只取回第一个数组? 如何取回这两个数组?

【问题讨论】:

  • 您的代码是正确的。以这种方式打印 println(recallArray[0]) 和 println(recallArray[1])。
  • @DharmeshDhorajiya 如果我打印recalledArray[0] 我得到Mexico,如果我打印recalledArray[1] 我得到USA,它仍然无法工作
  • 我通过你的代码并运行查看我的输出:((墨西哥,美国,加拿大),(“墨西哥城”,华盛顿,渥太华))
  • 我认为您使用旧版本的 swift 尝试删除!像这样的 NSArray
  • @DharmeshDhorajiya 仍然无法正常工作,它给了我一个错误,告诉我我需要强制使用 as! NSArray

标签: ios arrays swift nsarray nsuserdefaults


【解决方案1】:

很抱歉还有另一个问题,我正在检查应用程序是否首先启动然后保存 NSUserDefaults 如果没有然后不要再保存它所以我在模拟器上运行应用程序后添加了第二个数组所以代码永远不会保存到 NSUserDefaults,但无论如何感谢您的帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-25
    • 2019-09-24
    • 1970-01-01
    • 1970-01-01
    • 2014-03-31
    • 2018-06-24
    • 1970-01-01
    相关资源
    最近更新 更多