UILocalnotification和代表之间有什么区别?

时间:2013-05-14 06:30:01

标签: iphone ios objective-c delegates uilocalnotification

我有一个应用程序,我想知道是否从其他类调用该方法。所以,我有点困惑是使用UILocalnotification还是使用protocol创建委托方法。有人请帮帮我。

5 个答案:

答案 0 :(得分:3)

您应该使用delegate/ protocolNSNotificationCenter。您不能使用UILocalnotification它用于不同的目的。

  

UILocalNotification的实例表示应用程序可以安排在特定日期和时间向其用户呈现的通知。操作系统负责在适当的时间发送通知

这意味着UILocalNotification用于通知用户您的应用程序不是您的自定义类对象。如果应用程序处于后台,它将显示为警报。

如果您只是想通知某些更改,请使用NSNotificationCenter。这将解决您的问题,无需代表。
这是教程
NSNotificationCenter Tutorial

答案 1 :(得分:1)

Delegation表示调用另一个对象来执行特定任务, 就像你的朋友要购买2张电影票一样 - 你有说法去哪里,哪个节目,什么电影,邀请更多的朋友。就像你打电话给你的朋友说些什么,并得到你朋友的回复告诉你挂打电话

Notification仅在执行任务后才会发生, 并且通知的对象不能再更改事件。 就像你的朋友txt你“我有2张电影票,你想来吗?”。而且通知就像广播电台一样,播放你的信息,你不知道谁在听。

这就是我在某处读到的,这是我在SO上找到的最好的差异之一。

答案 2 :(得分:0)

什么是UILocalNotification?

仅当应用未运行(或在后台运行)时,才会自动显示

UILocalNotifications。如果应用程序正在运行并且本地通知触发,则会调用UIApplicationDelegate的- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification方法,系统不会显示任何内容(也不会播放声音)。如果要显示通知,请在委托方法中自行创建UIAlertView。

什么是代表?

我理解的是,当一个对象将一个事件的责任传递给另一个对象,从而将责任“委托”给该对象时。

例如,如果您在iOs中有NSButton,则通常将Delegate指定为父视图控制器。这意味着不是在按钮的定义中处理touchUp事件,而是在视图控制器中处理它。

答案 3 :(得分:0)

声明#import<Appdelegate.h>文件,在哪个类中调用该方法。

如果您的方法在AppDelegate中声明,那么您必须像这样创建AppDelegate的共享实例

AppDelegate * delegate=(AppDelegate *)[[UIApplication sharedApplication]delegate];

并调用所需方法,如下面的代码。

[self delegate.getData]; // getdata是函数在这里编写你的函数。

我希望这对你有所帮助。

答案 4 :(得分:0)

如果你想如何从另一个班级打电话,你应该去: -

Need to call methods in other viewControllers from another viewController

现在来UILocalNotification。它主要用于我们不知道本地事件何时触发,以便我们可以执行当时编程所需的操作。它还将在应用程序处于后台时显示。

委托是预定义的通信,它是从编程处理的,或者可以在运行时调用。因此,对于protocol(自定义委派)或委派,您应该先了解哪一个被调用并安排它。

在您的情况下,您应该使用UILocalNotification这是通知的一部分,除此之外,您可以使用KVO(Key Value observation)