ios5中自动释放的替代方法是什么?以前,表视图的以下方法可行:
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSUInteger row = [indexPath row];
static NSString *TableIdentifier = @"TableIndentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:TableIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:TableIdentifier]autorelease];
}
cell.textLabel.text = [arrAccounts objectAtIndex:row];
return cell;
}
现在我收到一条消息“ARC禁止”和“自动释放不可用”......这有什么用呢?
答案 0 :(得分:11)
只需删除自动释放,ARC就能为您完成工作
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:TableIdentifier];
这该死的魔法
答案 1 :(得分:3)
删除自动释放呼叫。 AFAIK编译器足够聪明,可以意识到它应该是自动释放的,并为你合成适当的调用。
答案 2 :(得分:2)
如果您不想对当前文件进行ARC所需的更改,则可以使用该文件的新-fno-objc-arc编译器标志为特定文件禁用ARC。使用新的-fobjc-arc编译器标志启用ARC。如果对某些文件使用手动引用计数更方便,则可以选择在每个文件的基础上使用ARC。更多信息: http://developer.apple.com/library/ios/#releasenotes/ObjectiveC/RN-TransitioningToARC/_index.html