iphone - UIColor功能崩溃

标签 iphone iphone-sdk-3.0 uitableview crash uicolor

好的,所以我有一个要应用主题的UITableView。我想我已经找到了解决方法。我要做的是在加载 View 时,调用了一个名为“[self getValues]”的函数。外观如下:

 - (void)getValues {
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSString *theme = [defaults valueForKey:@"theme"];
    fileName = [NSString stringWithFormat:@"%@.png", theme];
    textColor = [self getTextColor];
}

在文件头中将fileName和textColor变量定义为NSString和UIColor。 fileName用于获取我分配给单元格的背景图像的文件名。我将“textColor”分配给函数[self getTextColor]的输出。这是该函数:
 - (UIColor*)getTextColor {
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSString *theme = [defaults valueForKey:@"theme"];

    NSArray *themes = [NSArray arrayWithObjects:@"Crash Love", @"DECEMBERUNDERGROUND", @"Sing the Sorrow", nil];
    NSArray *textColors = [NSArray arrayWithObjects:gold, [UIColor blackColor], [UIColor whiteColor], nil];

    int r;
    UIColor *clr;

    for (NSString *element in themes) {
        r += 1;

        if ([element isEqualToString:theme]) {
            clr = [textColors objectAtIndex:r];
            break;
        }
    }

    return clr;
}

但是由于某种奇怪的原因,上面的函数崩溃了。我肯定知道函数中有导致崩溃的原因,因为当我删除调用函数的行时,该应用程序运行正常。我使用NSLog来查看我的应用程序对于主题变量的含义,它不是“1Theme”就是其他变量,所以这不是问题。

有任何想法吗?

最佳答案

怎么样呢:

- (UIColor*) getTextColor
{
    NSDictionary* themeColors = [NSDictionary dictionaryWithObjectsAndKeys:
        [UIColor redColor], @"Theme1",
        [UIColor blackColor], @"Theme2",
        [UIColor whiteCOlor], @"Theme3",
        nil];

    return [themeColors objectForKey: [[NSUserDefaults standardUserDefaults] valueForKey:@"theme"]];
}

颜色存储在字典中,因此您可以简单地按名称进行查找。如果您真的经常调用它,那么您也可以考虑将themeColors变量static设置为仅初始化一次。否则我不会打扰。

关于iphone - UIColor功能崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2396495/

相关文章:

ios - iPhone 连接到 localhost Rails sarver

iphone - 如何在重新打开应用程序时显示相同的 View

iphone - 如何在不使用 ios 应用程序内购买的情况下处理付款?

ios - UITableViews 上的点击与长按 - 为什么长按时点击不会选择行?

ios - 当用户用手指拾取时的动画表格 View 单元格(Swift 3)

iphone - iphone 中的 Nslog 图像名称

ios - 在没有 UIScrollView 的情况下使 UIView 可滚动

ios - UITableViewCell 中的 UITextField 错误

iphone - NSMutableURLRequest 超时不起作用

iphone - 这是 iPad 设备的常见行为吗?