gpt4 book ai didi

iphone - UIColor功能崩溃

转载 作者:行者123 更新时间:2023-12-03 17:43:48 24 4
gpt4 key购买 nike

好的,所以我有一个要应用主题的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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com