3

私は C# .NET からの Objective C を初めて使用します。次のシナリオがあります。

5 つの UIButton に対応する 5 つの NSArray があるとします。UIButton は NSArray とまったく同じ名前を持っているため、たとえば、1 つの UIButton は mainScreen と呼ばれ、mainScreen と呼ばれる NSArray があります。

これらの 5 つのボタンは、次のことを行う 1 つの IBAction にリンクされています。

- (IBAction)btnClick:(id)sender {
    NSString *category = [(UIButton *)sender currentTitle];
    NSLog(category);
   //Here I need to call the NSArray which has the same name as category
}

UIButton の実際の名前を取得できるようになりましたが、そのタイトルと同じ NSArray を取得するにはどうすればよいでしょうか? 多くの if else または switch ステートメントに入ることなく?

4

5 に答える 5

0

ほとんどのプログラミング言語では、オブジェクトに名前がありません。[1] UIButtons が NSArray(mainScreen) とまったく同じ名前を持っているからといって、オブジェクトが「mainScreen と呼ばれる」という意味ではありません。
、配列をオブジェクトとして使用NSDictionaryし、ボタンのタイトルをキーとして使用します。またはボタンタグを使用

title1= [[NSArray alloc] initWithObjects:@"1",nil];
title2= [[NSArray alloc] initWithObjects:@"2",nil];
title3= [[NSArray alloc] initWithObjects:@"3",nil];
title4= [[NSArray alloc] initWithObjects:@"4",nil];
title5= [[NSArray alloc] initWithObjects:@"5",nil];

dict = [[NSDictionary alloc] initWithObjectsAndKeys:title1,@"title1",title2,@"title2",title3,@"title3",title4,@"title4",title5,@"title5",nil];  

- (IBAction)btnClick:(id)sender {
    NSString *category = [(UIButton *)sender currentTitle];
    NSArray *arr = [dict objectForKey:category];

}
于 2013-07-10T06:43:17.013 に答える