黑马程序员 - C语言 -手动管理内存快速入门
来源:互联网 发布:mac虚拟机镜像文件 编辑:程序博客网 时间:2024/06/05 07:57
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
/* 1.引用计数器 用来保存当前对象有几种东西在使用它(数字) 2.引用计数器的作用 用来判断当前对象是否应该回收内存空间(如果对象不等于nil,当引用计数器为0,此时要回收当前对象的内存空间) 3.引用计数器的操作 retain 使得引用计数器+1 release 使得引用计数器-1 retainCount 得到引用计数器的值 4.如果一个对象释放的时候,会有“临终遗言”(会调用该对象的dealloc方法) 注意: 1)dealloc方法是NSObject,一般我们会重写dealloc方法 2)在dealloc方法的内容,我们要调用[super dealloc] 5.手动内存管理 MRC 是手动内存管理 ARC 是自动内存管理 注意,我们创建一个项目,此时默认是ARC的(自动内存管理)把项目从ARC的模式改成MRC模式 */#import <Foundation/Foundation.h>#import "Person.h"int main(int argc,const char * argv[]) { @autoreleasepool { // 创建一个Person的实例对象 Person *p = [[Personalloc]init]; //对象有没有所有者?有 //证明有一个所有者 NSUInteger count = [p retainCount]; NSLog(@"count = %lu",count); // %lu指无符号 //使用所有者+1 Person *p2 = [p retain]; NSLog(@"p2 = %lu",[p2retainCount]); //如果想要对象回收,想办法使 retainCount= 0 [p release]; // 1 [p release]; // 此处执行后p的空间会被回收 NSLog(@"p = %lu",[pretainCount]);// 证明p空间被回收,可以在Person类中,重写dealloc方法 } return 0;}Person.h#import <Foundation/Foundation.h>@interface Person : NSObject@endPerson.m//// Person.m// OC7-MRC内存管理//// Created by 陈家劲 on 15/11/9.// Copyright © 2015年陈家劲. All rights reserved.//#import "Person.h"@implementation Person//dealloc方法是对象的临终遗言方法//对象被回收或者被销毁时,会默认启动该方法//注意 dealloc方法是系统自动调用的 引用计数器的值自动调用的 不需要手动调用- (void)dealloc{ // 1)先释放子类自己的内存空间 NSLog(@"Person已经挂掉了");// 2)在释放父类 [super dealloc];}@end
0 0
- 黑马程序员 - C语言 -手动管理内存快速入门
- [黑马程序员]C语言内存管理
- 黑马程序员---C语言入门疑难点---内存管理(7)
- 黑马程序员—C语言—内存管理理解
- 黑马程序员——c语言基础:内存管理
- 黑马程序员——C语言内存管理
- 黑马程序员——C语言和OC内存管理
- 黑马程序员——OC语言学习——OC手动内存管理
- 黑马程序员-[OC语言] 第三篇:MRC手动内存管理总结
- 黑马程序员——oc语言学习心得—— 手动管理内存
- 黑马程序员——Objective-C学习之从手动内存管理到ARC机制
- 黑马程序员-C语言-内存管理概念、内存分区以及内存函数
- 黑马程序员——OC基础---手动内存管理
- 黑马程序员 OC语言 - 5 内存管理
- 黑马程序员---【OC语言】06内存管理
- 黑马程序员-OC语言基础:内存管理
- 黑马程序员——C语言---内存管理的概念和内存分区
- 黑马程序员------[Objective-C]内存管理
- 什么是ROM、RAM、DRAM、SRAM和FLASH,以及它们的区别
- JS检查上传图片的类型和大小
- double 型转换成 金额
- erlang程序优化点的总结
- linux常用命令2
- 黑马程序员 - C语言 -手动管理内存快速入门
- 转载proguard原理以及部分命令参数说明
- 线性回归之最小二乘法简要解析
- 好吧,我承认我喜欢这样的多个 StoryBoard 组织的方式,学习了!
- Android手机如何录制屏幕及转GIF
- UITableView的自定义cell
- 坚决斗争坚决出手
- JDBC利用游标分页查询
- Could not load file or assembly 'Oracle.DataAccess' or one of its dependencies. 试图加载格式不正确的程序。