UI didEnterRegion 更新了吗?
UI update in didEnterRegion?
我正在制作一个应用程序,该应用程序使用 CLLocationManager 来使用地理围栏。我已经实现了这两种方法,它们都得到了适当的调用:
- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
{
[self updateUI]; // update the UI
}
- (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region
{
[self updateUI]; // update the UI
}
我正在使用一个名为 updateUI 的方法进行一组 UI 更新,如下所示:
- (void)updateUI
{
// Update labels, constraints, alphas and similar
}
updateUI 在 didEnterRegion 和 didExitRegion 中被调用,但这引发了一些问题:
- 当应用程序处于后台时,它是如何工作的?
- 我应该检测该应用程序是打开的还是在后台,然后在 viewWillAppear 中执行 UI 更新?
- 如果在这些 didEnterRegion 和 didExitRegion 中更新 UI 是一件坏事,那么这样做的后果究竟是什么?
谢谢!
埃里克
如果通知到达时您的应用程序不在前台,则它不会被置于前台。因此,此时对接口做任何事情都没有什么意义,因为实际上没有接口。只需以某种方式处理通知——即记下发生的事情——然后停止。此时你的工作是尽快离开那里,让应用程序重新进入休眠状态。下次您的应用程序出现在前面(变为活动状态)时,您会收到 that 的通知,并且 now 您可以制作界面匹配数据。
我正在制作一个应用程序,该应用程序使用 CLLocationManager 来使用地理围栏。我已经实现了这两种方法,它们都得到了适当的调用:
- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
{
[self updateUI]; // update the UI
}
- (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region
{
[self updateUI]; // update the UI
}
我正在使用一个名为 updateUI 的方法进行一组 UI 更新,如下所示:
- (void)updateUI
{
// Update labels, constraints, alphas and similar
}
updateUI 在 didEnterRegion 和 didExitRegion 中被调用,但这引发了一些问题:
- 当应用程序处于后台时,它是如何工作的?
- 我应该检测该应用程序是打开的还是在后台,然后在 viewWillAppear 中执行 UI 更新?
- 如果在这些 didEnterRegion 和 didExitRegion 中更新 UI 是一件坏事,那么这样做的后果究竟是什么?
谢谢!
埃里克
如果通知到达时您的应用程序不在前台,则它不会被置于前台。因此,此时对接口做任何事情都没有什么意义,因为实际上没有接口。只需以某种方式处理通知——即记下发生的事情——然后停止。此时你的工作是尽快离开那里,让应用程序重新进入休眠状态。下次您的应用程序出现在前面(变为活动状态)时,您会收到 that 的通知,并且 now 您可以制作界面匹配数据。