【发布时间】:2017-04-12 04:17:57
【问题描述】:
我想在我的 iOS 应用程序中设置一些本地通知,但是我似乎找到的关于实现这些的每个教程似乎只允许我基于计时器触发通知(参见下面的示例代码)?例如,当新数据加载到 UITableView 时,是否可以触发本地通知?对于一般性问题,我很抱歉,但我似乎找不到很多关于此的文档。我也不确定如果仅在用户点击屏幕时才获取数据,我该怎么做? 例如数据在 ViewController 的 viewDidLoad 中被抓取/更新?
-(void)viewDidLoad {
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.fireDate = dateTime;
localNotification.alertBody = [NSString stringWithFormat:@"Alert Fired at %@", dateTime];
localNotification.soundName = UILocalNotificationDefaultSoundName;
localNotification.applicationIconBadgeNumber = 1;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
}
【问题讨论】:
-
"新数据已加载"NSUrlSession 使用completionHandler 另见this tutorial。一旦 UrlRequest 完成 你可以做一些事情......“当按钮被按下时”action (就像一个函数......在这里,您的函数将在 target(按钮)上运行您想要的 localNotification)here
-
如果您想在某个时间点(例如加载完成时)触发它,则在您为加载创建的加载空白处。在那里创建一个本地通知,如果这没有帮助,我很抱歉,但我没有清楚地了解你的问题
-
您能否澄清一些事情:1)您希望通知的与数据相关的事件是否在屏幕上可见(即UI事件是重要事件),例如完成网络数据获取(即数据可用性是重要事件),还是其他? 2) 通知的具体目的是什么?是否只是简单地通知用户操作已经完成,如果是,他们具体需要知道什么? 3) 当应用程序在后台或仅在前台时,您希望能够通知他们此事件吗?
-
使用 UILocalNotification 是在特定时间在本地触发通知。这些通知旨在提醒用户在应用程序未运行或最小化时发生事件。 UILocalNotifications 在应用程序运行时不显示(因此设置延迟)。您描述的场景听起来更像是您应该查看 NSNotificationCenter 以向应用程序中的观察者触发通知。
标签: ios objective-c