В моем приложении для iPhone у меня есть appSettings.plist. Это позволяет мне, но и другим просто изменять некоторые параметры. Одним из параметров является преобладающий цвет приложения. .Plist выглядит так:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Red</key>
<integer>255</integer>
<key>Green</key>
<integer>123</integer>
<key>Blue</key>
<integer>124</integer>
<key>compositeRGB</key>
</dict>
</plist>
В своем коде я читаю этот файл и пытаюсь сделать UIColor из этих трех чисел. Я должен признать, что я не знаю слишком много о CGFLoats, и я подозреваю, что это является причиной моей проблемы. Вот что я делаю:
-(void)readAppSettings
{
NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *finalPath = [path stringByAppendingPathComponent:@"appSettings.plist"];
NSDictionary *plistDictionary = [[NSDictionary dictionaryWithContentsOfFile:finalPath] retain];
unsigned int RedComponent = [[plistDictionary objectForKey:@"Red"]intValue];
unsigned int GreenComponent = [[plistDictionary objectForKey:@"Green"]intValue];
unsigned int BlueComponent = [[plistDictionary objectForKey:@"Blue"]intValue];
appColor = [UIColor colorWithRed: ((float) RedComponent / 255.0f)
green: ((float) GreenComponent / 255.0f)
blue:((float) BlueComponent / 255.0f)
alpha:1.0f];
}
всякий раз, когда я пытаюсь использовать appColor
в качестве UIColor, мое приложение вылетает со следующей ошибкой:
'- [__ NSCFArray CGColor]: нераспознанный селектор отправлен на экземпляр 0x7b0ab20'
Could somebody explain to me what I'm doing wrong. You don't have to be polite.