Objective c 可以将UILocalNotification子类化并更改默认值;“关闭”;按钮文本和方法?
正在搜索更改UILocalNotification的“关闭”按钮文本/功能的方法 我发现从另一个对象访问/调用文本/函数是不可能的,尽管子类化UILocalNotification应该允许实现方法覆盖。。。更不用说创建访问器来获取/设置“关闭”按钮文本字段了 你们怎么看?苹果会怎么做 有人试过吗 编辑:2011年12月21日下午12:01 我要问的问题涉及对oop的理解:后期/早期绑定、动态方法查找、声明类型与运行时类型字段和方法处理 UILocalNotification的子类化确实有效Objective c 可以将UILocalNotification子类化并更改默认值;“关闭”;按钮文本和方法?,objective-c,overriding,subclass,uilocalnotification,Objective C,Overriding,Subclass,Uilocalnotification,正在搜索更改UILocalNotification的“关闭”按钮文本/功能的方法 我发现从另一个对象访问/调用文本/函数是不可能的,尽管子类化UILocalNotification应该允许实现方法覆盖。。。更不用说创建访问器来获取/设置“关闭”按钮文本字段了 你们怎么看?苹果会怎么做 有人试过吗 编辑:2011年12月21日下午12:01 我要问的问题涉及对oop的理解:后期/早期绑定、动态方法查找、声明类型与运行时类型字段和方法处理 UILocalNotification的子类化确实有效 UI
UILocalNotificationExampleSublass*示例=[UILocalNotificationExampleSublass init]代码>
…而设备确实创建了一个对象,但是类型为UILocalNotification
,而不是UILocalNotificationExampleSublass
我希望深入了解UILocalNotification.m文件的方法
如果它没有自己的方法,那么哪个对象(请命名)会获取UILocalNotification的实例,使用其字段,并显示我们在屏幕上看到的对象(请命名)?aUILocalNotification
只是通知信息的存储。它不执行任何操作
此外,应用程序不会显示通知。另一个过程是这样的。因此,子类化UILocalNotification
毫无用处
编辑12月22日17:53 UTC+1:
是的,您可以子类化UILocalNotification
。但是,UILocalNotification
是一个抽象类,没有实现它的任何属性。alloc
方法被重写,因此它返回一个私有子类UILocalNotification
的实例。这就是为什么不能实例化UILocalNotificationExampleSubclass
但是仍然没有指向子类UILocalNotification
,因为当您使用调度通知或立即使用呈现通知时,操作系统会复制通知
该副本存储在系统管理的另一个进程中,该进程使用自己的私有存储机制。UILocalNotification
只是一组属性的存储,这些属性将被序列化并从应用程序发送到操作系统
现在,我们有另一个进程存储所有预定的本地通知,并等待发出通知。当这种情况发生时,该进程将检查您的应用程序是否在前台
- 如果您的应用程序不在前台,那么另一个完全不受我们控制的进程将创建警报并显示通知。我们无法以任何方式自定义该警报,除非使用
UILocalNotification
类的属性
- 如果应用程序位于前台,则通知将发送回将创建
UILocalNotification
新实例的应用程序。然后,ui应用程序
共享实例将访问其委托
属性,并检查该委托是否实现。如果它这样做了,您将收到通知,并且可以使用该通知执行任何您想要的操作。例如,您可以选择使用警报视图显示通知
可以按如下方式配置和显示警报视图:
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
UIAlertView *alertView =
[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Alert", nil)
message:NSLocalizedString(notification.alertBody, nil)
delegate:nil
cancelButtonTitle:nil
otherButtonTitles:NSLocalizedString(@"OK", nil), nil];
[alertView show];
[alertView release]; // unless your project uses Automatic Reference Counting
}
如果我说的是真的,我希望这个较长的回答能回答你的问题。如果你说的是真的。。。您知道什么类使用UILocalNotification
的实例来构造我们在屏幕上看到的警报吗?我希望你能告诉我一些知识。查找Apple公开的类引用之外的一些事实。如果您的应用程序位于前台,UIApplication
的委托可以实现application:didReceiveLocalNotification:
,并显示自定义警报视图。如果您的应用程序在后台(或未运行),系统将显示警报,您无法更改关闭按钮的名称。感谢您的快速响应,但它没有回答我的问题。