2010-06-23 56 views
3

在我的应用我想打电话给注销功能,如果用户处于空闲状态一段时间如何完成如何检测与iPhone SDK空闲用户

这个答案不适合我 iPhone: Detecting user inactivity/idle time since last screen touch 如果我的工作从UIApplication的继承我的应用程序委托类并实现

- (void)sendEvent:(UIEvent *)event 

它给了我错误

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'There can only be one UIApplication instance.' 

我不能找到的UIApplication的其他实例在我的应用

到目前为止,我已经做了

,而不是

@interface IdleAppDelegate : NSObject <UIApplicationDelegate> { 

我已经改变了它

@interface IdleAppDelegate : UIApplication<UIApplicationDelegate> { 

,并在主,而不是

int retVal = UIApplicationMain(argc, argv, nil, nil); 

,我把它改成

int retVal = UIApplicationMain(argc, argv, @"IdleAppDelegate", @"IdleAppDelegate"); 

有剩余做些什么吗?

我得到了上述错误...我错过了什么...?

请帮助

感谢

+0

也许你没有把它子分类吧?请参阅:http://stackoverflow.com/questions/1399202/how-to-subclass-uiapplication – 2010-06-23 12:34:40

+0

感谢您的评论...但我已经实现了这种方式只有 我从UIApplication继承我的appDelegate类,并在主内已经写了int retVal = UIApplicationMain(argc,argv,appClass,delegateClass);也在哪里appClass是我的appDelegate类的名称 – 2010-06-23 12:42:46

+0

我编辑了这个问题,并把我如何继承它的代码... – 2010-06-24 05:05:33

回答

2

您的应用程序类也是一个应用程序委托类 - 这是很糟糕。 UIApplicationMain()将创建您的自定义应用程序子类的实例,然后它将尝试其委托的实例 - 这也是您的自定义应用程序子类的实例。您应该区分这些问题 - 是的,您的自定义应用程序子类需要子类UIApplication,但您的应用程序委托应该是一个单独的类,它的子类为NSObject

+0

谢谢格雷厄姆...但我的应用程序没有任何自定义应用程序类...我该怎么做...? – 2010-06-24 10:33:51

+0

@mihirpmehta它根据你的问题中的代码。这是最新的吗? – 2010-06-24 13:07:44

0

尝试了这一点

-(void)applicationWillResignActive:(UIApplication *)application 

{ 
    NSLog(@"Application not Active"); 
    // FETCH THE CURRENT TIME 
} 
+0

谢谢,但...当应用程序本身变得无效时,它会被调用...就像来电时或收到短信等...不符合我的要求 – 2010-06-23 12:53:07