NSOperationQueue утечка? - PullRequest
       4

NSOperationQueue утечка?

0 голосов
/ 28 декабря 2011

Я пытаюсь выполнить метод в фоновом потоке, используя NSOperationQueue, например так:

NSOperationQueue *queue = [NSOperationQueue new];
    NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self
                                                                            selector:@selector(method)
                                                                              object:nil];

    [queue addOperation:operation];
    [queue release];
    [operation release];

Проблема в том, что, как говорит анализатор, существует утечка, которая сохраняется в очереди.

Как я могу это исправить?

Ответы [ 3 ]

2 голосов
/ 28 декабря 2011

Вызов [MyClass new] аналогичен вызову [[MyClass alloc] init], он возвращает объект с retainCount = 1. Таким образом, он должен быть выпущен после.

1 голос
/ 29 декабря 2011

Просто интересно, что вы делаете внутри своего метода "метода"?Вы используете NSAutoreleasePool?Кстати, используйте этот ответ, чтобы помочь вам.

1 голос
/ 28 декабря 2011

Вы выпускаете operation объект?Попробуйте добавить autorelease ключевое слово

    NSInvocationOperation *operation = [[[NSInvocationOperation alloc] initWithTarget:self
                                                                                selector:@selector(method)
                                                                                  object:nil] autorelease];
...