ユーザーがiPhone画面に触れたかどうかを検出しなければなりませんでした。だから、私は(のUIApplicationのサブクラス)私のプロジェクトで「CustomApplication」という名前のクラスを作成してから、私はこのように見えるために私main.mを変更し、次のよう- (void)sendEvent:(UIEvent *)イベントメソッドiPhone 5.0
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, @"CustomApplication",nil);
[pool release];
return retVal;
このクラス「CustomApplication.mは、」メソッドが含まれています:
- (void)sendEvent:(UIEvent *)event {
[super sendEvent:event];
[MyUtility showAlertWithTitle:@"Alert!!!!" message:@"Session Expired!!!!"]; // showing an alert here
}
方法showAlertWithTitleは次のようになります。
+ (void) showAlertWithTitle:(NSString *)aTitle message:(NSString *)aMessage
{
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:aTitle message:aMessage delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show]; // Line causing problem in iOS 5 - base sdk 5.0
[alertView release];
}
iOS 4.2ではうまくいきましたが、iOS 5.0では画面に触れてアプリがクラッシュしています(sendEvent:eventメソッドが呼び出されたとき)。コードをデバッグすると、問題が[alertView show]にあることがわかりました。ライン。 iOS 5では、この特定の行([alertView show];)が実行され、CustomApplicationのsendEventメソッドが再度呼び出され、このメソッドはMyUtilityのshowAlertWithTitle:メソッドを呼び出し、これが次にsendEventメソッドを呼び出し、コード無限ループに入っています。私は解決策を知らない。誰かがこのような凶悪なことに直面した場合は、どうすれば警告が表示されているかをsendEventメソッドが呼び出されないように記述してください。
あなたは '[alertViewショー]スタックトレースを含めることができます;'のSendEventを呼んでいますか? – picciano