我想从字符串中设置像UIButton这样的对象的名称。
NSString *buttonName = [[NSString alloc] initWithString:@"someString"];
我的目标是:
UIButton *someString = [[UIButton buttonWithType:UIButtonTypeCustom]retain];
我该如何解决这个问题?
答案 0 :(得分:6)
您不能 - 在执行任何Objective-C代码之前,编译器会很好地解析变量名称。您可以做的是使用NSMutableDictionary
维护字符串映射到按钮等对象:
NSString *string = @"someString";
[buttonMap setObject: [UIButton buttonWithType:UIButtonTypeCustom] forKey: string];
//...time passes...
[[buttonMap objectForKey: @"someString"] setEnabled: YES];