Что правильно? Это:
NSArray* foo = [[NSArray alloc] initWithObjects:@"a", @"b", nil];
[bar performSelectorInBackground:@selector(baz:) withObject:foo];
- (void)baz:(NSArray*)foo {
...
[foo release];
}
Или:
NSArray* foo = [[[NSArray alloc] initWithObjects:@"a", @"b", nil] autorelease];
[bar performSelectorInBackground:@selector(baz:) withObject:foo];
- (void)baz:(NSArray*)foo {
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
...
[pool release];
}
Я знаю, что первый работает, но Кланг жалуется на это, поэтому мне интересно, есть ли лучший шаблон для использования.
Я бы "просто попробовал" 2-й, но с автоматическим выпуском, кто знает, означает ли отсутствие EXC_BAD_ACCESS
, что вы делаете все правильно или вам просто повезло ...