我不确定如何使用objectAtIndex执行此操作

tim*_*one 0 objective-c ios

可能重复:
如何将nsstring转换为uicolor?

不是一个客观的程序员,但我不确定我不能做这样的事情.我知道我正在返回一个字符串值,但只是想要一种简洁的方法来获取这些值:

NSMutableArray *colorsArray=[[NSMutableArray alloc] init];
[colorsArray addObject:@"whiteColor"];
[colorsArray addObject:@"blueColor"];
 // val5 is either 0 or 1
[view setBackgroundColor:[UIColor [colorsArray objectAtIndex:val5]]];
Run Code Online (Sandbox Code Playgroud)

这可能吗?

thx提前

Jac*_*ack 5

为什么不直接存储颜色而不是NSString

NSMutableArray *colorsArray=[[NSMutableArray alloc] init];
[colorsArray addObject:[UIColor whiteColor]];
[colorsArray addObject:[UIColor blueColor]];
if (val5 < colorsArray.count) // Doesn't hurt any to be safe, and this way you won't get a crash if something messes up your val5 at some point
{
    // val5 is either 0 or 1
    [view setBackgroundColor:[colorsArray objectAtIndex:val5]];
}
else
{
    NSLog(@"Error - Color not expected - leaving color the way it is.")
}
Run Code Online (Sandbox Code Playgroud)

您编写的代码不会编译,语法无效,因为您尝试执行的[UIColor @"whiteColor"]操作不是有效的语法.你可以使用,performSelector:但除非你真的需要将颜色存储为字符串,否则这是毫无意义的.