Je viens d'écrire une application iOS pour tester l'UIAlertView. Quand je l'ai couru, le UIAlertView apparaît juste avec l'écran est devenu sombre d'abord sans UIAlertView, et "longtemps" plus tard, l'UIAlertView est apparu. Cela se produit à la fois sur simulateur et sur iPhone (IOS 4.2). Je ne sais pas pourquoi, s'il vous plaît aidez-moi, merci.UIAlertView apparaissant très lentement
Description: (Vous pouvez également télécharger le projet HERE)
C'est une application basée Voir très simple avec 3 classes: AppDelgate ViewControler et un TestOperation qui mettent en œuvre NSOperation; AppDelegate était juste celui produit par 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];
}
// !! Résolu Utilisez performSelectorOnMainThread pour faire la course de l'interface utilisateur sur thread principal
Veuillez poster votre solution en réponse ci-dessous et l'accepter dès que vous serez en mesure de le faire. – titaniumdecoy