UIAlertViewをテストするためのiOSアプリケーションを作成しました。私がそれを走らせると、UIAlertViewが表示され、画面が暗くなり、UIAlertViewがなくなり、「長い時間が経過しました」とUIAlertViewが表示されました。これは、SimulatorとiPhone(IOS 4.2)の両方で発生します。なぜか分からない、助けてくれて、ありがとう。UIAlertViewが非常にゆっくりと表示されます
説明:(あなたはまた、プロジェクトHEREをダウンロードすることができます)
その3クラスと非常にシンプルなビューベースのアプリケーション:AppDelgate ViewControlerとNSOperationを実装TestOperation。 AppDelegateは、XCodeによって作成されたものです。 TestOperation.h:解決
#import <Foundation/Foundation.h>
@protocol TestOperationDelegate
- (void)didFinishTestOperaion;
@end
@interface TestOperation : NSOperation {
id <TestOperationDelegate> delegate;
}
@property (nonatomic, assign) id <TestOperationDelegate> delegate;
@end
TestOperation.m
#import "TestOperation.h"
@implementation TestOperation
@synthesize delegate;
- (void)main {
[delegate didFinishTestOperaion];
}
@end
ViewContoller.m
- (void)viewDidLoad {
[super viewDidLoad];
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
TestOperation *testOperation = [[TestOperation alloc] init];
testOperation.delegate = self;
[queue addOperation:testOperation];
[testOperation release];
}
- (void)didFinishTestOperaion {
NSLog(@"start uialertview");
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Oops!" message:@"Here's the UIAlertView"
delegate:self cancelButtonTitle:@"Confirm" otherButtonTitles:nil];
[alert show];
[alert release];
}
// !!メインスレッド上 UIの実行を作るためにperformSelectorOnMainThreadを使用して、あなたがUIAlertViewでテストしようとしている何
解決策を以下の回答として投稿し、回答があればそれを受け入れてください。 – titaniumdecoy