为了能通过ARC的方式进行编译,必须遵守一些规则。
1.alloc/initobjects
按照之前的方式创建对象,不必再做retain/autorelease/retainCount操作。
2.deallocmethods
通常情况将会自动为你创建,你不必直接调用该方法。尽管你可以创建一个定制的dealloc方法来释放资源而不是实例变量。当创建定制方法时,不要调用[superdealloc]方法。编译器将会强行来为你做该操作。
3.declaredproperties
@property(strong) NSObject *obj;
ARC之前,我们告诉编译器如何进行内存管理,使用assign/retain/copy参数的命令@property来声明公共属性。这些参数将不会在ARC中使用,我们会使用weak/strong参数来告诉编译器如何来操作属性。
4.objectpointer in c structures
这是一个禁忌。文档建议使用类而不是结构体的方式来实现,这种方式非常有益因为结构体对于ARC是未知的。结构体将会引起额外的迁移麻烦。
5.@autoreleasepoolinstead NSAutoReleasePool
ARC编译代码不能使用NSAutoReleasePool,必须使用@autoreleasepool{}块.