Ios 如何从返回的plist数组中获取字符串

Ios 如何从返回的plist数组中获取字符串,ios,arrays,swift,plist,Ios,Arrays,Swift,Plist,当我试图从plist中获取值并将其附加到数组中时 nameArray.append(namesArray!.objectForKey("Item1")! as! String) 目标项是一个字符串,但它似乎在plist数组中,有人能解释一下如何将其取出吗 namesArray!的打印!。objectForKey(“第1项”)!随后出现的错误如下所示: 只需获取数组的第一个元素: nameArray.append((namesArray!.objectForKey("Item1")! as! [

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

nameArray.append(namesArray!.objectForKey("Item1")! as! String)
目标项是一个字符串,但它似乎在plist数组中,有人能解释一下如何将其取出吗

namesArray!的打印!。objectForKey(“第1项”)!随后出现的错误如下所示:


只需获取数组的第一个元素:

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

例如:

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

    nameArray.append(result)
}

请不要使用文本截图。这可以防止索引和其他与文本相关的操作。毕竟,从Xcode复制和粘贴文本并不困难。当然,您应该避免强制展开,但这与问题无关。@imnosov我同意,至少这个问题意味着反序列化对象的类型是事先知道的。好的,谢谢,但是有一个字符串数组,我基本上是想保存一些数据,当我保存一个新的演示文稿时,它会提取数组,附加新项,然后将数组重新保存到plist