创建数组 swift
Create Array swift
我不是很专业Swift。
我创建了一个需要数据的自定义视图:
var myData = [
["label" : "2000", "value" : NSNumber(int:15)],
["label" : "2001", "value" : NSNumber(int:7)],
["label" : "2002", "value" : NSNumber(int:60)],
["label" : "2003", "value" : NSNumber(int:30)],
["label" : "2004", "value" : NSNumber(int:15)],
["label" : "2005", "value" : NSNumber(int:45)],
["label" : "2006", "value" : NSNumber(int:45)],
["label" : "2007", "value" : NSNumber(int:50)],
["label" : "2008", "value" : NSNumber(int:60)],
["label" : "2009", "value" : NSNumber(int:70)],
["label" : "2010", "value" : NSNumber(int:80)],
] as NSArray
如何以编程方式生成此文件?
让我解释一下:
我有两个包含年份的列表,另一个包含值:
var listYear = []
var listValue = []
这两个列表如何生成数组 myData?
最简单的方法是
let listYear = ["2000","2001","2002"]
let listValue = [1,2,3]
var combined : [[String:AnyObject]] = []
for i in 0..<listYear.count
{
combined.append(["label" : listYear[i], "value" : NSNumber(integer:listValue[i])])
}
println(combined)
更复杂的方法
let listYear = ["2000","2001","2002"]
var listValue = [1,2,3]
let combined = map(Zip2(listYear, listValue)) {
["label" : [=11=], "value" : NSNumber(integer:)]
}
您可以将 map
与 enumerate
组合起来构建这样的字典数组:
let listYear = [2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010]
let listValue = [15, 7, 60, 30, 15, 45, 45, 50, 60, 70, 80]
let list: [[String : Int]] = map(enumerate(listYear)) { (index, year) in
return [ "label": year, "value": listValue[index]]
}
当然要做到这一点 listYear
和 listValue
必须具有相同数量的元素,并且它们的元素之间的关联是通过索引完成的。
我不是很专业Swift。
我创建了一个需要数据的自定义视图:
var myData = [
["label" : "2000", "value" : NSNumber(int:15)],
["label" : "2001", "value" : NSNumber(int:7)],
["label" : "2002", "value" : NSNumber(int:60)],
["label" : "2003", "value" : NSNumber(int:30)],
["label" : "2004", "value" : NSNumber(int:15)],
["label" : "2005", "value" : NSNumber(int:45)],
["label" : "2006", "value" : NSNumber(int:45)],
["label" : "2007", "value" : NSNumber(int:50)],
["label" : "2008", "value" : NSNumber(int:60)],
["label" : "2009", "value" : NSNumber(int:70)],
["label" : "2010", "value" : NSNumber(int:80)],
] as NSArray
如何以编程方式生成此文件?
让我解释一下:
我有两个包含年份的列表,另一个包含值:
var listYear = []
var listValue = []
这两个列表如何生成数组 myData?
最简单的方法是
let listYear = ["2000","2001","2002"]
let listValue = [1,2,3]
var combined : [[String:AnyObject]] = []
for i in 0..<listYear.count
{
combined.append(["label" : listYear[i], "value" : NSNumber(integer:listValue[i])])
}
println(combined)
更复杂的方法
let listYear = ["2000","2001","2002"]
var listValue = [1,2,3]
let combined = map(Zip2(listYear, listValue)) {
["label" : [=11=], "value" : NSNumber(integer:)]
}
您可以将 map
与 enumerate
组合起来构建这样的字典数组:
let listYear = [2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010]
let listValue = [15, 7, 60, 30, 15, 45, 45, 50, 60, 70, 80]
let list: [[String : Int]] = map(enumerate(listYear)) { (index, year) in
return [ "label": year, "value": listValue[index]]
}
当然要做到这一点 listYear
和 listValue
必须具有相同数量的元素,并且它们的元素之间的关联是通过索引完成的。