好的,所以我有一个要应用主题的 UITableView。我想我已经知道该怎么做了。我所做的是当我的视图加载时,我调用一个名为“[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”,要么是其他的,所以这不是问题。
有任何想法吗?