В моем приложении я создаю EKCalendar. Поскольку календарь может быть удален пользователем за пределами моего приложения, мне нужно, чтобы проверить, что календарь до сих пор существует, например, так:iOS: интерфейс не освежает
-(BOOL)checkForCalendar {
NSArray *calendarArray = [self.store calendarsForEntityType:EKEntityTypeEvent];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *calNameToCheckFor = [defaults objectForKey:@"calendarName"];
EKCalendar *cal;
for (int x = 0; x < [calendarArray count]; x++) {
cal = [calendarArray objectAtIndex:x];
NSString *calTitle = [cal title];
// if the calendar is found, return YES
if ([calTitle isEqualToString:calNameToCheckFor]) {
return YES;
}
}
return NO;
}
Я хочу, чтобы мой пользовательский интерфейс для обновления, если календарь действительно удаляются, как таковые:
-(void)initCalendarState {
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
if (![self checkForCalendar]){
[self.LoginSwitch setOn:NO animated:NO];
[userDefaults setObject:@"0" forKey:@"SwitchedOn"];
}
}
Я поставил этот метод делегата приложения
- (void)applicationDidBecomeActive:(UIApplication *)application
вещи я наблюдаю:
1) Если я прохожу через этот код шаг за шагом в отладчике, он вызывается в нужный момент и выполняется, как ожидалось: работает в основном потоке, соблюдая все условия и т. Д.
2) Однако: когда он получает обновление пользовательского интерфейса, ([self.LoginSwitch setOn: NO animated: NO];), ничего не происходит.
3) Когда я повторно запустил проект (фактически выйдя из него и перезапустив), пользовательский интерфейс действительно обновляется.
Что мне не хватает?
Конкретный вопрос: почему мой пользовательский интерфейс не обновлен во время работы приложения?
Благодаря вперед