Swift如何制作字典数组?

时间:2014-10-18 19:23:45

标签: arrays dictionary collections swift

object-C style

@interface TestViewController:UIViewController{
    NSArray *dataList;
}
@end

@implementation TestViewController
- (void)viewDidLoad
{
    [super viewDidLoad];

    NSDictionary *dict1 =[[NSDictionary alloc] initWithObjectsAndKeys:@"32",@"age",@"andy",@"name", nil];
    NSDictionary *dict1 =[[NSDictionary alloc] initWithObjectsAndKeys:@"34",@"age",@"smith",@"name", nil];
    NSDictionary *dict1 =[[NSDictionary alloc] initWithObjectsAndKeys:@"27",@"age",@"jonathan",@"name", nil];

    dataList = [[NSArray alloc]initWithObjects:dict1,dict2,dict3,nil];
}
@end

我想在Swift中使用相同的代码

所以我输入了如下的快捷风格

class ViewController: UIViewController {
    var datalist = [Dictionary]() //Compile Error -> "Missing argument for parameter #1 in call"
                                  // I can't understand error. What does it mean?



   override func viewDidLoad() {
        super.viewDidLoad()  
        let dict1 = ["age":"32","name":"andy"]
        let dict2 = ["age":"34","name":"smith"]
        let dict3 = ["age":"27","name":"jonathan"]

        datalist = [dict1,dict2,dict3]  //Compile Error -> 'ViewController' does not have a member named 'datalist'
    }
}

但是2错误

我不知道为什么会出现错误

你能帮助我吗?

1 个答案:

答案 0 :(得分:3)

swift中的数组不带参数,只需通过将数组设置为[](带或不带值)来创建一个参数,例如:

var array : [Int] = []
var array2 = [1,2,3]

会创建一个整数数组。

此外,swift中的字典需要知道键和值的类型,例如:

Dictionary<String, String>

但是也有创建字典的简写:

[String:String]

(假设String是键和值的类型)。

因此,对于您的示例,您可以重写您的datalist对象以声明为:

var datalist : [[String:String]] = []

然后,您可以按照使用方式使用datalist对象,或者将[String:String]个对象附加到该对象上。