我有一组这样的NSString值:
self.dataArray = @[@"blue", @"orange", @"green", @"red", @"yellow"];
Run Code Online (Sandbox Code Playgroud)
并希望能够做类似的事情(在将上述颜色之一设置为self.colorString之后):
self.view.backgroundColor=[UIColor self.colorString + Color];
Run Code Online (Sandbox Code Playgroud)
但显然不能那样做.什么是可能的方式?
小智 7
一种近乎普遍的方式:
NSDictionary *colors = @{
@"red": [UIColor redColor],
@"green": [UIColor greenColor],
@"blue": [UIColor blueColor]
};
NSString *name = @"blue";
UIColor *c = colors[name];
Run Code Online (Sandbox Code Playgroud)
一种真正普遍的方式:
NSString *selName = [NSString stringWithFormat:@"%@Color", name];
SEL sel = NSSelectorFromString(selName);
UIColor *color = [[UIColor class] performSelector:sel];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
71 次 |
| 最近记录: |