7

在我的applicationDidFinishLaunching:方法中,我创建一个对象并在其上调用一个异步方法,如下所示:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    Foo *foo = [[Foo alloc] init];

    [foo asynchronousMethodWithCompletion:^{
        // Location A
    }];

    // Location B
}

如果我不使用 ARC,我必须放在[foo release]哪里?在完成块内部(位置 A)还是在异步方法调用之后(位置 B)?还是根本不重要?

4

1 回答 1

6

你把它放在[foo release]位置 B,就像你通常会做的那样,如果有一个常规的方法调用而不是块。该块将保留对象并在完成后释放它。

于 2012-11-26T02:27:43.183 回答