将数据插入数组[Swift]

时间:2015-01-20 00:44:23

标签: ios swift

首先,我很抱歉我的英语不好! 我有一个关于使用Apple Swift语言将值插入数组的问题。 我在Swift和iOS开发方面都是新手,所以我不得不再说SORRY了。

我有一个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?
}

一切都好。现在我尝试将此数据转换为Array并将其推送到UIPicker。我的阵列是:

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

有一个问题:我正在尝试将数据插入到我的数组中,并且我遇到了一些错误。我已尝试过所有内容......我想将新值插入零索引,但插入方法无法正常工作,追加方法也无法正常工作(NSArray没有这个方法,好的)。我试过使用NSMutableArray - 没什么。据我所知,NSMutableArray有 addObject insertObject 方法,而我 也有错误(错误:Void不能转换为NSArray)

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

NSArray和[“value”,......]是不同的东西?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

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

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

你真的应该用小写字母开始你的变量名。