Я использую несколько UISwitches и не могу настроить их правильно по какой-то странной причине.
Я извлекаю данные JSON, которые в основном представляют собой набор целых чисел в определенной последовательности, основанной на их значениях, я хочу, чтобы переключатель был включен или выключен. Вот часть соответствующего кода:
- (void)fetchData
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSData* data = [NSData dataWithContentsOfURL: [NSURL URLWithString:@"http://10.101.10.101/get/channels"]];
NSError* error;
LightingData = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
idData = [LightingData valueForKey:@"level"];
NSLog(@"Lighting Values: %@", [idData objectAtIndex:19]);
dispatch_async(dispatch_get_main_queue(), ^{
});
});
}
- (void)dataCheck
{
int x = 100;
if ([idData objectAtIndex:19 == x])
{
[fieldsOverheadStatus setOn:YES];
}
}
Метод dataCheck
продолжается некоторое время, устанавливая около 20 переключателей.
У меня все мои переключатели установлены по умолчанию как «выключенные», но когда я запускаю приложение, все они отображаются как «включенные».
Я устанавливаю точки останова, чтобы увидеть, вызывается ли метод dataCheck
, и это происходит. Как видите, я вставил логин, чтобы посмотреть, каково значение objectAtIndex:19
, и возвращаемое значение равно 0 (не null). Я проверил содержимое idData
и все значения получены правильно.
Может ли кто-нибудь сказать мне, почему мои переключатели меняются, даже если они не должны быть? Что я делаю неправильно?
Дайте мне знать, если нужен код.