Objective c 自动释放在自动引用计数模式下不可用

Objective c 自动释放在自动引用计数模式下不可用,objective-c,ios,memory-management,Objective C,Ios,Memory Management,可能重复: 我正在学习Objective-C,这本书叫做Objective-C基础,2011年出版。它正在构建一个简单的应用程序来介绍iOS概念并教授Objective-C语言。自本书出版以来,平台或语言似乎发生了一些变化。当我试图从书中构建代码时(下面摘录了关键段落),我遇到了以下错误: autorelease is unavailable: not available in automatic reference counting mode ARC forbids explicit mes

可能重复:

我正在学习Objective-C,这本书叫做Objective-C基础,2011年出版。它正在构建一个简单的应用程序来介绍iOS概念并教授Objective-C语言。自本书出版以来,平台或语言似乎发生了一些变化。当我试图从书中构建代码时(下面摘录了关键段落),我遇到了以下错误:

autorelease is unavailable: not available in automatic reference counting mode
ARC forbids explicit message send of 'autorelease'
错误消息出现在代码中实际使用autorelease的几行上方

我在Objective-C和iOS方面只有大约1小时的经验,所以我不知道如何解决这个问题,这样我就可以继续阅读这本书了。任何帮助都将不胜感激

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView
                             dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil){                        #### error message here
        cell = [[[UITableViewCell alloc]
                initWithStyle:UITableViewCellStyleDefault
                 reuseIdentifier:CellIdentifier]autorelease];  ### autorelease used here
    }
    cell.textLabel.text = [NSString
                           stringWithFormat:@"Rental Property %d", indexPath.row];
    NSLog(@"Rental Property %d", indexPath.row);
    return cell; 
}
如果我不能解决这些类型的小问题,那么我就不能照着书去做。如果有某种版本系统我可以使用(比如rvm for Ruby)来避免此类问题,请告诉我

阅读iOS的应用程序。这是一本很棒的读物,即使你使用ARC继续前进,理解它也很好。还有一些场景需要您理解

自动释放是手动内存管理的一部分

后来在iOS 5中,添加了ARC(自动引用计数),以避免手动管理内存


这是一份比较报告。

如果你只有一个小时,我建议你重新启动

在Xcode中构建objective-c项目有一个称为自动引用计数的功能。你的书没有用它

重新启动时,在执行向导以创建项目时,请密切注意。您需要确保

使用自动参考计数


未选中。

我宁愿买一本新书。放弃ARC似乎是个糟糕的选择。我不使用ARC。我在ARC之前学习了objective-c。我认为在使用ARC之前最好先了解内存管理。谢谢,这是我在阅读本书时可以遵循的答案。我将按照“我认为在使用ARC之前最好了解内存管理”的描述重新启动。要正确使用ARC,您也需要这种理解。(但你还是想用ARC)我还是坚持这本书。在没有ARC的情况下学习objective-C是一个很好的方法。保留/释放内存管理并不难学,但正确操作很重要,而且从一开始就比以后更容易学。一旦掌握了保留/释放的诀窍,就很容易获得ARC。ARC并没有排除内存管理,它毕竟只是隐藏了它——如果你对下面发生的事情没有很好的感觉,你可能会以各种方式失败。并发现许多现有代码难以遵循、编译、修改和在您自己的项目中使用。随着自动引用计数的引入,iOS5中的内存管理发生了很大变化。你需要读一本很好的ARC简介。我推荐Matthijs Hollemans。和的可能副本。