@autoreleasepool EXC_BAD_ACCESS

I have a simple UIViewControler and when i call the method [self performSelectorInBackground:@selector(load) withObject:nil]; it causes and EXC_BAD_ACCESS

Ось UIViewControler.m та UIViewControler.h

#import 
@interface ViewController : UIViewController

@property (strong, nonatomic) UITextView *myTextView;

@end



#import "ViewController.h"

@implementation ViewController

@synthesize myTextView;

- (id)init {
    self = [super init];
    if (self) {
        myTextView = [[UITextView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        [[self view] addSubview:myTextView];
        [self performSelectorInBackground:@selector(load) withObject:nil];
    }
    return self;
}

- (void) load {
    @autoreleasepool {
        [myTextView setText:@"LOADING ..."];
        //DO SOMETHING ....
    }
}

@end

PS:

The project uses Objective-C ARC

0
Що таке траса стека для аварії?
додано Автор kperryua, джерело

1 Відповіді

Об'єкти UIKit не є безпечними: ви повинні мати доступ лише до основного потоку. Лінія [myTextView setText: @ "LOADING ..."]; не може бути безпечно виконана у фоновому потоці.

Це може бути причиною отримання помилки EXC_BAD_ACCESS , але не відображати решту методу load , я не можу дізнатися, що ще може бути неправильним.

7
додано