1

我正在使用 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];
}

视图不是 nil,并且在autorelease调用之前始终保留计数为 1,但返回值为quiltCellnil。是在返回之前[view autorelease]发布吗?view我如何保持对返回对象的引用?

更新:

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

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

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

4

0 回答 0