手动管理内存 retain计数是一个相当简单的概念,Objective-C中的内一个对象都有一个retain计数。retain计数是一个整数。使用alloc函数创建一个对象时,该对象的retain计数设为1.当计数变为0的时候,对象被释放。一般通过发送retain消息给对象,从而增加对象的retain计数。发送release给对象,则减少retain计数的值。 手动管理内存前,先进入项目的“Build Settings” 里面,找到“Objective-C Automatic Reference Counting” 设置为 “No” 例如我们要对一个Person类进行手动的内存管理: 接口文件 //Person.h

import <Foundation/Foundation.h>

@interface Person : NSObject { NSString _name; } -(void)setName:(NSString )name; -(NSString *)name; @end 实现文件: //Person.m

import "Person.h"

@implementation Person -(void)setName:(NSString )name { _name = name; } -(NSString )name { return _name; } -(void)dealloc { NSLog(@"内存清理."); [super dealloc]; } @end 主文件: //main.m

import <Foundation/Foundation.h>

import "Person.h"

int main(int argc, const char * argv[]) { ...

[阅读更多 →]