内存管理的基本问题
来源:互联网 发布:github php-cs-fixer 编辑:程序博客网 时间:2024/05/18 02:57
#import <Foundation/Foundation.h>#import "Person.h"int main(int argc, const char * argv[]) { @autoreleasepool { Person * p = [[Person alloc] init]; NSLog(@"%lu",p.retainCount); // retain :retainCount + 1,返回 self [p retain]; NSLog(@"%lu",p.retainCount); // release: retainCount - 1 [p release]; // 1 NSLog(@"%lu",p.retainCount); //[p release]; // retainCount = 0 的时候 会调用 dealloc 方法销毁对象 // EXC_BAD_ACCESS 系统访问了内存中不可访问的空间 // OC 中默认不进行实时监测 NSLog(@"%lu",p.retainCount); /* 那为什么在这个对象被回收之后,这个不确定的值是1而不是0呢?这是因为当最后一次执行release时,系统知道马上就要回收内存了,就没有必要再将retainCount减1了,因为不管减不减1,该对象都肯定会被回收,而对象被回收后,它的所有的内存区域,包括retainCount值也变得没有意义。不将这个值从1变成0,可以减少一次内存操作,加速对象的回收。*/ } return 0;}
#import <Foundation/Foundation.h>@interface Person : NSObject@end
#import "Person.h"
@implementation Person
- (void)dealloc {
[superdealloc];
NSLog(@"Person被销毁了");
}
@end
0 0
- 内存管理的基本问题
- 缓存管理的基本问题
- 内存管理-SLAB(SLAB的基本数据结构)
- 内存管理之计数器的基本操作
- Linux内存管理的基本框架
- ARC内存管理的基本特点
- 内存管理-SLAB(SLAB的基本数据结构)
- 内存的问题和管理
- 内存管理问题的总结
- string的内存管理问题
- NSString的内存管理问题
- 解决管理问题的基本思维方式
- 一个动态链接的内存管理问题
- 有关内存管理的一些问题
- 一个关于内存管理的问题:
- 解说Android系统内存管理的问题
- C++ 内存管理的小问题-
- 内存管理及常见的问题
- 主子报表多数据源的处理
- 将mp3文件数据转换成.h的头文件的音频数据
- 在applet(java plugin)中与javascript通信
- iBatis开发详解(10)---------------操作DDL和映射继承
- nginx+tomcat集群
- 内存管理的基本问题
- org.apache.jasper.JasperException: Unable to compile class for JSP:
- C++如何生成自己的静态库(lib)文件
- UITextField
- UVA - 11400 Lighting System Design
- 行为型模式-模板方法模式
- redhat下本地yum源配置
- hdu 3079 Vowel Counting
- CSU_1469_Handles