objective-c中的对象是采用引用计数来管理的。并且有两种管理模式,一种是自动的管理模式,一种是手动的模式。
当使用alloc分配的对象,就确定了手动引用计数的管理模式。
必须手动release对象,才能保证没有内存泄露。
如果直接调用类的构造函数创建的对象,就是自动管理的对象。它会自动调用release从内存中删除对象。
retain关键字是和release相对的,相当于com中的addref接口,能够增加引用计数,并返回一个对象指针。
autorelease关键字是为了解决对象引用属性自我赋值而设计的。它能够在当前函数返回时,执行对相应对象的release操作,这样当自我赋值的时候,retain增加了引用计数后,才执行release就避免了直接release导致的自我赋值时的对象意外销毁的情况。
ok,大概就是这样。objective-c的语法,真的很个性。