我正在使用 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,但返回值为quiltCell
nil。是在返回之前[view autorelease]
发布吗?view
我如何保持对返回对象的引用?
更新:
我想出了一个通过延迟自动释放调用的解决方法
[view performSelector:@selector(autorelease) withObject:nil afterDelay:0.01];
它对我有用,但我仍然想要一个更漂亮的解决方案。