0
在我的應用程序中,我創建了一個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;
}
我想我的UI更新,如果一個日曆確實被刪除,因爲這樣的:
-(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)但是:when它會更新UI,([self.LoginSwitch setOn:NO animated:NO];),沒有任何反應。
3)當我重新運行項目(有效強制退出並重新啓動)時,UI實際上會更新。
我錯過了什麼?
具體的問題是:爲什麼不在應用程序運行時更新我的UI?
感謝提前