1

ユーザーにプロンプ​​ト画面を表示してもらいたいのですが、はいまたはいいえのオプションがあります。問題は、UIAlertView子スレッドから呼び出すことができないことです。子スレッドから呼び出すと、実行時エラーが発生します( EXC_BAD_ACCESS)。私はNSThreadIOS6.1で使用しています

これは私が使用しているコードです

-(void) construct
{
    NSThread *initThread =[[NSThread alloc]initWithTarget:self selector:@selector(error) object:nil];
    [initThread start];
}

- (void) error
{
    //make sure it runs on the main thread
    dispatch_async(dispatch_get_main_queue(), ^{

        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Save"
                                                            message:@"Enter File Name"
                                                            delegate:self
                                                   cancelButtonTitle:@"Cancel"
                                                   otherButtonTitles:@"OK", nil];

        alertView.alertViewStyle = UIAlertViewStylePlainTextInput;

        [alertView show];
    });
}

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
    NSLog(@"Alert View dismissed with button at index %d",buttonIndex);

    switch (alertView.alertViewStyle)
    {
        case UIAlertViewStylePlainTextInput:
        {
            UITextField *textField = [alertView textFieldAtIndex:0];
            NSLog(@"Plain text input: %@",textField.text);
        } break;
        case UIAlertViewStyleSecureTextInput:
        {
            UITextField *textField = [alertView textFieldAtIndex:0];
            NSLog(@"Secure text input: %@",textField.text);
        } break;
        case UIAlertViewStyleLoginAndPasswordInput:
        {
            UITextField *loginField = [alertView textFieldAtIndex:0];
            NSLog(@"Login input: %@",loginField.text);

            UITextField *passwordField = [alertView textFieldAtIndex:1];
            NSLog(@"Password input: %@",passwordField.text);
        }break;
        default: break;
    }
}

これは私が得ているエラーです:

[NSURLCacheInternal alertView:didDismissWithButtonIndex:]: unrecognized selector sent to instance 0x8653630
2013-07-26 16:12:35.738 iOSTrack[7455:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSURLCacheInternal alertView:didDismissWithButtonIndex:]: unrecognized selector sent to instance 0x8653630'
*** First throw call stack:
(0x1e7a012 0x1796e7e 0x1f054bd 0x1e69bbc 0x1e6994e 0x7c0e13 0x408d66 0x408f04 0x20e7d8 0x266b014 0x265b7d5 0x1e20af5 0x1e1ff44 0x1e1fe1b 0x1dd47e3 0x1dd4668 0x3caffc 0x21cd 0x20f5)
libc++abi.dylib: terminate called throwing an exception
4

2 に答える 2