在我的应用中,用户有十二个按钮可用,我已经定义了十二个NSMutableArray
。如果用户单击按钮1,则应用应计算Comp1
数组中的对象数,或者如果用户单击按钮2,则应用应计算Comp2
数组中的对象数,等等上。
当用户点击按钮时,我会在NSMutableArray
中保存相应NSString
的名称 - 例如myString = @"Comp1"
。我的问题是,如何使用NSMutableArray
“定义”myString
名称?
我希望有一种方法:[NSMutableArray arrayWithTitle:myString]
。
答案 0 :(得分:4)
创建一个包含数组的字典。字典键将是您正在寻找的标题。
例如,当您想要检索计数使用时,将button1的数组插入字典:
NSInteger count = [myDictionary[@"Comp1"] count];
答案 1 :(得分:1)
如果数组是某个对象(您的视图或视图控制器)的属性,则可以使用KVC来获取它:
NSArray *myArray = [self valueForKey:myString];
但这确实是不良做法。为什么不将所有按钮放入数组中。将您的NSMutableArray
放入相同大小的第二个数组中。然后你可以通过索引来引用它们。
在标题:
中@property (nonatomic) NSArray *buttons;
@property (nonatomic) NSArray *arrays;
在实施中,创建按钮或从nib文件加载按钮后(这应该可以进入viewDidLoad
或awakeFromNib
):
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.
}