来自Objective-C的主类的调用方法

周长

如果用户在10分钟内无法触摸屏幕,那么我就完成了超时功能,然后我的应用程序直接进入了登录屏幕。对于上述问题,我使用来自此处的示例代码https://github.com/B-Sides/ELCUIApplication在类的命名上进行了一些更改,因此我的类PB_TIMER_UIApplication不是ELCUIApplication我将PB_TIMER_UIApplicationmain.m类中的类称为实现,如下所示:

return UIApplicationMain(argc, argv, NSStringFromClass([PB_TIMER_UIApplication class]), NSStringFromClass([AppDelegate class]));

我将PrincipalClassName设置为 PB_TIMER_UIApplication

现在,我PB_TIMER_UIApplication像下面这样创建一个属性和实例方法

@interface PB_TIMER_UIApplication :  UIApplication{
    NSTimer *_idleTimer;
}
@property(nonatomic) int timerTimeOutIntervals;

- (void)resetIdleTimer;

现在,我希望我的应用程序在进入登录屏幕/超时会话之前显示警报。如果警报按钮按OK,则我的计时器再次启动10秒钟。这就是为什么我要为其创建一个属性timerTimeOutIntervals以及为什么resetIdleTimer要在整个应用程序中调用该属性和实例方法的原因。所以我试图像Appdelegate调用一样访问属性/方法,[[PB_TIMER_UIApplication sharedApplication] setTimerTimeOutIntervals:10];但它向我显示了静态错误,

在此处输入图片说明

我的问题是我错了,如何从原则类调用实例方法的属性?

周长

是的,我解决了我的问题。我首先更改了应用程序的体系结构,然后创建的子类UIApplication并将其设置为main.m文件中的主体类。因此,我的UIApplication子类首先运行,然后在主UIApplication位置UIApplicationDelegate设置。这就是为什么我无法声明启动超时间隔的原因,所以我的应用程序会递归运行。

搜索后,我得到了这个链接。在该链接中,我遵循@Brian King的建议。我创建了自己的自定义UIWindow类,并将所有超时代码设置为他给定的Github链接代码。

现在,我的应用程序设计师是将rootviewcontroller放在自定义UIWindow类上,然后显示我的自定义警报视图,并在警报视图按钮上编写超时/继续计时器功能。注意:-按照给苹果提供的UIResponder链,每次触摸都将其称为超级视图,最后调用UIWindow。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章