两个问题:
第一个问题:
我想制作这样的字符串数组:
国家[1] =挪威; 资本[1] =奥斯陆;
国家[2] =德国; 资本[2] =柏林;
我该如何编写此代码?它应该很简单,但我不明白我见过的任何解释。我想我想使用NSArray,因为我不想改变它们! 我想主要的问题是我如何声明这个数组!
第二个问题:
我可以在按钮文本中使用例如Capital [2]吗?这就像一个测验,如果Country [2]是给定的国家,我希望这是一个选项。
/ a noob
答案 0 :(得分:6)
在Obj-c中声明NSArray
的最简单方法是这样的:
NSArray *Countries = @[@"Norway", @"Germany"];
NSArray *Capitals = @[@"Oslo", @"Berlin"];
然后,您可以稍后使用[]
表示法访问这些索引:
[myButton setTitle:Capitals[1] forState:UIControlStateNormal];
记住编程语言中的数组是0索引的!这意味着第一个元素是索引0,第二个元素是索引1,依此类推
答案 1 :(得分:1)
第一个答案
根据您的示例,您可以使用Array文字实现它:
NSArray* countries = @[@"Norway", @"Germany"];
NSArray* capitals = @[@"Oslo", @"Berlin"];
但是,首都城市与这些国家脱钩,它们有可能不同步。更好的表示形式是数组字典:
NSArray* countries = @[@{@"name":@"Norway", @"capital":@"Oslo"},
@{@"name":@"Germany", @"capital":@"Berlin"}];
第二次回答
当然可以!假设您在屏幕上有一个UIButton,可通过属性button
访问。使用原始数组,对于德国,您可以使用:
[self.button setTitle:capitals[1] forState: UIControlStateNormal];
对于字典,您可以使用:
NSDictionary* selectedCountry = countries[1];
NSString* country = selectedCountry[@"name"];
NSString* capital = selectedCountry[@"capital"];
[self.button setTitle:capital forState:UIControlStateNormal];
答案 2 :(得分:1)
NSArray *country = @[@"Norway", @"Germany"];
NSArray *capital = @[@"Oslo", @"Berlin"];
NSString *capitalOfGermany = capital[1];
berlinButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[berlinButton setTitle:capitalOfGermany forState:UIControlStateNormal];
berlinButton.frame = CGRectMake(120, 200, 80, 20);
[self addSubview:berlinButton];
答案 3 :(得分:1)
这不是你想要的字符串数组,它是一个字典数组:
NSArray *countryArray = @[ @{@"Country" : @"Norway", @"Capital" : @"Oslo"},
@{@"Country" : @"Germany", @"Capital" : @"Berlin"} ];
编辑我更正了变量声明。