-3

两个问题:

第一个问题:

我想制作这样的字符串数组:

国家[1]=挪威;首都[1]=奥斯陆;

国家[2]=德国;首都[2]=柏林;

我该如何编写这段代码?它应该很简单,但我不明白我所看到的任何解释。我想我想使用 NSArray,因为我不想改变它们!我想主要问题是我如何声明这个数组!

第二个问题:

我可以在按钮文本中使用例如 Capital[2] 吗?这就像一个测验,如果 Country[2] 是给定的国家,我希望这成为选项之一。

/一个菜鸟

4

4 回答 4

6

在 Obj-c 中声明 an 的最简单方法NSArray如下:

NSArray *Countries = @[@"Norway", @"Germany"];
NSArray *Capitals = @[@"Oslo", @"Berlin"];

然后,您可以稍后使用[]符号访问这些索引:

[myButton setTitle:Capitals[1] forState:UIControlStateNormal];

记住编程语言中的数组是 0 索引的!这意味着第一个元素是索引 0,第二个是索引 1,依此类推

于 2013-02-05T16:56:55.323 回答
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];
于 2013-02-05T16:56:17.550 回答
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];
于 2013-02-05T16:57:41.263 回答
1

这不是您想要的字符串数组,而是字典数组:

NSArray *countryArray = @[ @{@"Country" : @"Norway", @"Capital" : @"Oslo"},
                        @{@"Country" : @"Germany", @"Capital" : @"Berlin"} ];

编辑我更正了变量声明。

于 2013-02-05T16:57:43.857 回答