2010-06-23 54 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