0

在我的应用程序中,用户有十二个可用按钮,我定义了十二个NSMutableArray。如果用户单击按钮一,应用程序应计算Comp1数组中的对象数,或者如果用户单击按钮二,应用程序应计算Comp2数组中的对象数,依此类推。

当用户单击一个按钮时,我将各自的名称保存NSMutableArray在一个NSString- 例如,myString = @"Comp1". 我的问题是,我如何“定义”NSMutableArray名称myString

我希望有一种方法,例如:[NSMutableArray arrayWithTitle:myString].

4

2 回答 2

4

创建一个包含数组的字典。字典键将是您要查找的标题。

例如,将 button1 的数组插入到字典中,当您想要检索计数时,使用:

NSInteger count = [myDictionary[@"Comp1"] count];
于 2013-05-14T19:07:03.680 回答
1

如果数组是某个对象(您的视图或视图控制器)的属性,您可以使用KVC来获取它:

NSArray *myArray = [self valueForKey:myString];

但这确实是不好的做法。为什么不将所有按钮放入一个数组中。将您NSMutableArray的 s 放入第二个相同大小的数组中。然后你可以通过索引来引用它们。

在您的标题中:

@property (nonatomic) NSArray *buttons;
@property (nonatomic) NSArray *arrays;

在您的实现中,在创建按钮或从 nib 文件加载它们之后(因此这可能应该进入viewDidLoadawakeFromNib):

self.button = @[button1, button2, button3 ... ];
self.arrays = @[array1, array2, array3 ... ];

然后,当用户点击按钮时:

- (IBAction)buttonTapper:(id)sender {
    UIButton *button = (UIButton *)sender;
    NSUInteger index = [self.buttons indexOfObject:button];
    NSMutableArray *theArray = [self.arrays objectAtIndex:index];
    // do something with the selected array.
}
于 2013-05-14T19:05:47.693 回答