【发布时间】:2011-10-29 18:01:54
【问题描述】:
哪个是对的?这个:
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];
}
我知道第一个可行,但 Clang 抱怨它,所以我想知道是否有更好的模式可以使用。
我会“尝试”第二个,但使用自动发布,谁知道没有EXC_BAD_ACCESS 是否意味着你做对了,或者你很幸运......
【问题讨论】:
标签: objective-c iphone cocoa-touch