您的位置:首页 > 移动开发 > IOS开发

苹果开发 手动内存管理MRC

2015-12-01 18:52 429 查看
MRC个人总结
  关键字 alloc,new,  retain,copy, release, autorelease, dealloc.
一、内存管理的规则
 1)谁创建,谁释放
#import <Foundation/Foundation.h>
#import "Person.h"

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

Person *p = [Person new];
[p run];
[p release];

return 0;
}
2)苹果的手动内存管理采用引用计数器管理

 当一个对象创建的时候引用计数器retainCount值为1 如果需要对这个对象进行持有则需要用retain方法
#import <Foundation/Foundation.h>
#import "Person.h"

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

Person *p = [Person new];
[p run];

NSLog(@"retainCount = %lu", [p retainCount]); //retainCount 值为1
[p retain]; // retainCount 值为2
NSLog(@"retainCount = %lu", [p retainCount]);

[p release];
NSLog(@"retainCount = %lu", [p retainCount]);// retainCount 值为1;

[p release];//retainCount = 0 调用dealloc方法释放内存

return 0;
}


下面是Person类重写了NSObject dealloc方法
注意重写时一定要调用一下[super dealloc]方法
#import "Person.h"

@implementation Person

- (void)run {
NSLog(@"人在跑");
}

- (void)dealloc {
NSLog(@"对象被释放");
[super dealloc];
}

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iOS MRC