我遇到的问题是我的今日小部件有时无法加载。它只显示了它之前状态的快照。有时候它也会开始自己动手。我不认为它崩溃,因为我没有在设备日志中看到任何崩溃数据,也没有触发Crashlytics报告。它似乎也是随机的。无论我向下滑动多少次重新加载它,或者我将其删除并重新添加到今日菜单,它都无法工作。似乎并不重要。然后它可能会在几个小时后开始自己工作。附加到xCode时我无法捕捉到这一点。在使用我的设备时,它似乎总是“在野外”发生。事实上,如果它处于无法工作的状态,只要我连接设备并构建并运行,它就会重新开始工作。
如何诊断这个问题?这实际上是阻止我提交此应用程序的唯一因素。
- (void)widgetPerformUpdateWithCompletionHandler:(void (^)(NCUpdateResult))completionHandler {
// Perform any setup necessary in order to update the view.
CLS_LOG(@"widgetPerformUpdateWithCompletionHandler");
[RemindersManager sharedRemindersManager];
[REMINDERS_MANAGER refreshData];
_remindersArray = [REMINDERS_MANAGER storedReminders];
_armedRemindersArray = [REMINDERS_MANAGER armedReminders];
// If an error is encountered, use NCUpdateResultFailed
// If there's no update required, use NCUpdateResultNoData
// If there's an update, use NCUpdateResultNewData
[_userDefaults setBool:YES forKey:@"WidgetFirstRunComplete"];
[_userDefaults synchronize];
CLS_LOG(@"Widget first run status %d", [_userDefaults boolForKey:@"WidgetFirstRunComplete"]);
completionHandler(NCUpdateResultNewData);
}