将数据插入数组 [Swift]

Insert data into array [Swift]

首先,我为我糟糕的英语感到抱歉! 我对使用 Apple Swift 语言将值插入数组有疑问。 我在 Swift 和 iOS 开发方面绝对是新手,所以我不得不再说一次对不起。

我有一个 plist 文件和一种读取它并将数据转换为 NSDictionary 的方法。我在 Picker 中使用的这些数据。

PLIST 文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Years</key>
    <array>
        <string>2010</string>
        <string>2011</string>
        <string>2012</string>
        <string>2013</string>
        <string>2014</string>
        <string>2015</string>
    </array>
</dict>
</plist>

以及读取和转换的方法:

func getList(fileName: String) -> NSDictionary? {
     var myDict: NSDictionary?
     if let path = NSBundle.mainBundle().pathForResource(fileName, ofType: "plist") {
         myDict = NSDictionary(contentsOfFile: path)
     }
     return myDict?
}

一切正常。现在我尝试将此数据转换为数组并将其推送到 UIPicker。我的数组是:

var Years = getList("Years")?.objectForKey("Years") as NSArray

有一个问题:我正在尝试将数据插入我的数组中,但出现了一些错误。我已经尝试了一切......我想将新值插入零索引,但是 insert 方法不起作用,append 方法不起作用也是(NSArray 没有这个方法,好吧)。我试过使用 NSMutableArray - 没有。据我所知,NSMutableArray 有 addObjectinsertObject 方法,我 也有错误 (error: Void is not conversionble to NSArray)

我做错了什么?我怎样才能简单地将值插入数组的末尾和零索引?

NSArray 和 ["value", ...] 是不同的东西吗?

感谢帮助!

如果 Years 实际上是一个 NSArray,您不能向它添加任何东西,因为它是不可变的。您需要制作一个可变副本,

var Years = getList("Years")?.objectForKey("Years") as NSArray
var mutableYears = Years.mutableCopy() as NSMutableArray
mutableYears.addObject("2016")
mutableYears.insertObject("2009", atIndex:0)

您真的应该以小写字母开头您的变量名。