-3

2つの質問:

最初の質問:

次のような文字列の配列を作成したいと思います。

国[1]=ノルウェー; Capital[1]=オスロ;

国[2]=ドイツ; Capital[2]=ベルリン;

このコードを書くにはどうすればよいですか?簡単なはずですが、今まで見た説明がわかりません。NSArrayを変更したくないので、使用したいと思います。主な質問は、この配列をどのように宣言するかです。

2番目の質問:

たとえば、ボタンのテキストでCapital [2]を使用できますか?これはクイズのようなもので、Country [2]が指定された国である場合、これをオプションの1つにしたいと思います。

/ a noob

4

4 に答える 4

6

NSArrayObj-cで宣言する最も簡単な方法は次のとおりです。

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

[]その後、表記を使用してこれらのインデックスにアクセスできます。

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

覚えておいてくださいプログラミング言語の配列は0インデックスです!つまり、最初の要素はインデックス0、2番目の要素はインデックス1というようになります。

于 2013-02-05T16:56:55.323 に答える
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 に答える
1

ファーストアンサー

あなたの例を考えると、配列リテラルでそれを達成することができます:

NSArray* countries = @[@"Norway", @"Germany"];
NSArray* capitals = @[@"Oslo", @"Berlin"];

しかし、首都は国から切り離されており、同期がとれていない可能性があります。より適切な表現は、配列辞書です。

NSArray* countries = @[@{@"name":@"Norway", @"capital":@"Oslo"},
                       @{@"name":@"Germany", @"capital":@"Berlin"}];

2番目の回答

もちろんできます!画面に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];
于 2013-02-05T16:56:17.550 に答える