【问题标题】:how to take string from returned plist array如何从返回的 plist 数组中获取字符串
【发布时间】:2015-11-10 09:02:51
【问题描述】:

当我尝试从 plist 中获取值并将其附加到数组时

nameArray.append(namesArray!.objectForKey("Item1")! as! String)

目标项目是一个字符串,但它似乎在 plist 数组中,谁能解释一下如何取出它?

namesArray!.objectForKey("Item1") 的打印!后面的错误如下所示:

【问题讨论】:

  • 请不要使用文字截图。这可以防止索引和其他与文本相关的操作。毕竟,从 Xcode 中复制粘贴文本并不难。

标签: ios arrays swift plist


【解决方案1】:

将“Item1”键的值转换为字符串数组,然后从数组中获取第一个对象(因为它看起来只有一个)。如果你喜欢你的应用程序不应该在每次值为nil 时崩溃的想法,最好使用if let,而不是使用! 强制展开所有内容。

例子:

if let names = namesArray, 
    let items = names.objectForKey("Item1") as? [String], 
    let result = items.first {

    nameArray.append(result)
}

【讨论】:

  • 当然你应该避免强制展开,但这与问题无关。
  • @imnosov 我同意——至少这个问题暗示反序列化对象的类型是预先知道的。
  • 好的,谢谢,但是有一个字符串数组,我基本上是在尝试保存一些数据,当我保存新的演示文稿时,它会提取数组,附加新项目,然后重新- 将数组保存到 plist
【解决方案2】:

只取数组的第一个元素:

nameArray.append((namesArray!.objectForKey("Item1")! as! [String])[0])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2014-05-27
    • 2011-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多