如何从返回的 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 文件中本地化字符串数组

使用循环从 plist 的根级别获取字典数组并将其放入变量中

从 plist 访问字符串返回 nil

NSMutableArray 从 plist 返回 Null