两个问题:
第一个问题:
我想制作这样的字符串数组:
国家[1]=挪威;首都[1]=奥斯陆;
国家[2]=德国;首都[2]=柏林;
我该如何编写这段代码?它应该很简单,但我不明白我所看到的任何解释。我想我想使用 NSArray,因为我不想改变它们!我想主要问题是我如何声明这个数组!
第二个问题:
我可以在按钮文本中使用例如 Capital[2] 吗?这就像一个测验,如果 Country[2] 是给定的国家,我希望这成为选项之一。
/一个菜鸟
在 Obj-c 中声明 an 的最简单方法NSArray
如下:
NSArray *Countries = @[@"Norway", @"Germany"];
NSArray *Capitals = @[@"Oslo", @"Berlin"];
然后,您可以稍后使用[]
符号访问这些索引:
[myButton setTitle:Capitals[1] forState:UIControlStateNormal];
记住编程语言中的数组是 0 索引的!这意味着第一个元素是索引 0,第二个是索引 1,依此类推
第一个答案
给定您的示例,您可以使用数组文字来实现它:
NSArray* countries = @[@"Norway", @"Germany"];
NSArray* capitals = @[@"Oslo", @"Berlin"];
但是,首都城市与国家脱钩,它们有可能不同步。更好的表示形式是数组字典:
NSArray* countries = @[@{@"name":@"Norway", @"capital":@"Oslo"},
@{@"name":@"Germany", @"capital":@"Berlin"}];
第二个答案
当然可以!假设您在屏幕上有一个 UIButton,可通过 property 访问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];
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];
这不是您想要的字符串数组,而是字典数组:
NSArray *countryArray = @[ @{@"Country" : @"Norway", @"Capital" : @"Oslo"},
@{@"Country" : @"Germany", @"Capital" : @"Berlin"} ];
编辑我更正了变量声明。