为什么ARC自动释放的返回值为零?

时间:2013-07-12 07:29:55

标签: objective-c automatic-ref-counting

我正在使用TMQuiltView,我的项目已启用ARC,但TMQuilView没有。 在我的控制器中,我通过

将单元格出列
// ARC
TMQuiltViewCell* quiltCell = [_quiltView dequeueReusableCellWithReuseIdentifier:reuseIdentifier];

quiltCell始终为nil。在dequeueReusableCellWithReuseIdentifier:内,它喜欢这个

// No ARC
- (TMQuiltViewCell *)dequeueReusableCellWithReuseIdentifier:(NSString *)identifier {
    TMQuiltViewCell *view = [[self reusableViewsWithReuseIdentifier:identifier] anyObject];
    if (view) {
        [view retain];            
        view.selected = NO;
        [[self reusableViewsWithReuseIdentifier:identifier] removeObject:view];
    }
    return [view autorelease];
}

视图不是零,并且在autorelease调用之前总是保留计数为1,但返回值quiltCell为零。在返回之前,[view autorelease]是否会释放view?如何保持对返回对象的引用?

更新:

我通过延迟自动释放调用得出了一个解决方法

[view performSelector:@selector(autorelease) withObject:nil afterDelay:0.01];

它对我有用,但我仍然希望有一个更漂亮的解决方案。

0 个答案:

没有答案