如何从返回的 plist 数组中获取字符串
Posted
技术标签:
【中文标题】如何从返回的 plist 数组中获取字符串【英文标题】:how to take string from returned plist array 【发布时间】:2015-11-10 09:02:51 【问题描述】:当我尝试从 plist 中获取值并将其附加到数组时
nameArray.append(namesArray!.objectForKey("Item1")! as! String)
目标项目是一个字符串,但它似乎在 plist 数组中,谁能解释一下如何取出它?
namesArray!.objectForKey("Item1") 的打印!后面的错误如下所示:
【问题讨论】:
请不要使用文字截图。这可以防止索引和其他与文本相关的操作。毕竟,从 Xcode 中复制粘贴文本并不难。 【参考方案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])
【讨论】:
以上是关于如何从返回的 plist 数组中获取字符串的主要内容,如果未能解决你的问题,请参考以下文章
如何将嵌套的 Array/JSON 字符串存储在 .plist 文件中?
如何在 iOS info.plist 文件中本地化字符串数组