我正在使用几个 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(非空)。我检查了的内容idData
并且所有值都正确获得。
谁能告诉我为什么我的开关被改变了,即使他们不应该改变?我究竟做错了什么?
让我知道是否需要更多代码。