相关疑难解决方法(0)

内存管理和performSelectorInBackground:

哪个是对的?这个:

NSArray* foo = [[NSArray alloc] initWithObjects:@"a", @"b", nil];
[bar performSelectorInBackground:@selector(baz:) withObject:foo];

- (void)baz:(NSArray*)foo {
    ...
    [foo release];
}
Run Code Online (Sandbox Code Playgroud)

要么:

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];
}
Run Code Online (Sandbox Code Playgroud)

我知道第一个有效,但Clang抱怨它,所以我想知道是否有更好的模式可供使用.

我会"尝试"第二个,但是通过自动释放,谁知道缺少EXC_BAD_ACCESS意味着你做得对,或者你刚刚幸运...

iphone cocoa-touch objective-c

12
推荐指数
1
解决办法
2万
查看次数

标签 统计

cocoa-touch ×1

iphone ×1

objective-c ×1