arc enforces new rules

iOS5中,引入了ARC的功能,具体概念如下:

Automatic Reference Counting (ARC) is a compiler feature that provides automatic memory management of Objective-C objects. Rather than having to think about about retain and release operations, ARC allows you to concentrate on the interesting code, the object graphs, and the relationships between objects in your application.

ARC主要就是为Objective-C提供了一种自动的内存管理功能。因为在以前的项目中,在内存管理方面,要认为的去做很多大量的重复性的工作。现在有了ARC之后,我们可以更好的专注自己的代码逻辑。一个新的功能的引入,必然会有一些新的规则出现,所以我们在使用ARC的时候要注意一下几点:

  • 不用再去调用dealloc,retain,release,retainCount或者autorelease这些方法了。也就是说我们在代码中不需要这些了,是不是轻松很多啊。省去了代码中超级多的release。
  • 不能使用NSAllocateObject和NSDeallocatedObject。
  • 不能在C structires中使用对象指针。
  • There is no casual casting between id and void *.
  • 不能使用NSAutoreleasePool,取而代之的是@autoreleasepool,你可以在你生成代码的main.m文件中看到这一变化。
  • 不能使用memory zones,也就是说不在需要NSZone了。
  • 还有一点就是在属性声明的时候,属性的名字不能以new开头。 (如果使用了,那么产生的错误,可以参考 Property’s synthesized getter follows Cocoa naming convention for returning ‘owned’ objects).
    以上内容取自ARC Enforces New Rules