在ARC有效的情况下编译代码需要遵从的几条规则
- 不能使用retain/release/retainCount/autorelease
- 不能使用NSAllocateObject/NSDeAllocateObject
- 必须遵守内存管理的方法命名规则init
- 不要显式の调用dealloc([super dealloc])
- 使用@autoreleasePool块替代NSAutoreleasePool
- 不能使用区域NSZone
- 对象类型不能作为C语言中的结构体struct/union的成员
- 显式转换id和void *