いくつかの UISwitch を使用していますが、奇妙な理由でそれらを正しく設定できません。
基本的に、値に基づいて、特定のシーケンスの整数の集まりである 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
、すべての値が正しく取得されています。
スイッチが変更されるべきではないのに、なぜ変更されているのか誰か教えてもらえますか? 私は何を間違っていますか?
さらにコードが必要な場合はお知らせください。