여러 개의 UISwitches를 사용하고 있는데, 이상한 이유로 올바르게 설정할 수 없습니다.값에 따라 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
의 내용을 확인했는데 모든 값을 올바르게 받았습니다.
내 스위치가 변경되지 않는 이유는 누구에게 말해 줄 수 있습니까? 내가 도대체 뭘 잘못하고있는 겁니까?
더 이상 코드가 필요하면 알려주세요.