博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oc55--ARC单个对象的内存管理
阅读量:6818 次
发布时间:2019-06-26

本文共 1496 字,大约阅读时间需要 4 分钟。

//  Person.h#import 
@interface Person : NSObject@end
//  Person.m#import "Person.h"@implementation Person- (void)dealloc{        NSLog(@"%s", __func__);//    [super dealloc];      //ARC不准写}@end
////  main.m//  ARC基本概念//  不准许使用retain,release,dealloc里面不准许[super dealloc],编译器特性不是运行时特性,是xocde的功能,不是运行时跟你回收内存,而是xcode在编译的时候会跟你插入retain,release,是xcode帮你写了一些释放内存的代码。其他语言的垃圾回收机制是定时的去查看,没有使用就回收,ARC是写好了代码,执行代码,不是定时的去查看。完全消除了手动内存的管理。ios5之后默认就是ARC的。    插入代码之后就可以在手机上面运行了。#import 
#import "Person.h"int main(int argc, const char * argv[]) { Person *p1 = [[[Person alloc] init] autorelease]; //报错,ARC不准写autorelease //默认情况下所有的指针都是强指针 Person *p = [[Person alloc] init]; [p retain]; //报错,ARC不准写retain [p release]; //报错,ARC不准写release { Person *p5 = [[Person alloc]init]; //大括号执行完,p5就销毁了,就没有强指针指向这个对象了,那么这个对象就销毁了 } // [Person dealloc] { Person *p6 = [[Person alloc]init]; // p6 = nil; // 只要没有强指针,对象就释放。单个对象内存管理:不使用就置位nil, // [Person dealloc] } { // ARC判断对象是否释放,并不是判断引用计数。 ARC的判断准则: 只要没有强指针指向对象, 对象就会释放 // 默认情况下所有的指针都是强指针 Person *p = [[Person alloc] init]; p = nil; //[Person dealloc] __strong Person *p1 = [[Person alloc] init];// // 弱指针 __weak Person *p2 = p1; p1 = nil; //[Person dealloc] // 在开发中, 千万不要使用一个弱指针保存一个刚刚创建的对象 // 立即释放 __weak Person *p3 = [[Person alloc] init]; //[Person dealloc] } return 0;}

 

转载地址:http://dvszl.baihongyu.com/

你可能感兴趣的文章
MongoDB用户及权限管理(一):角色说明
查看>>
【C语言】获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列...
查看>>
Hyper-V中虚拟机的实时迁移
查看>>
我的友情链接
查看>>
spring事务不回滚
查看>>
Codeigniter Session重构
查看>>
Dubbo-消费者调用服务流程
查看>>
独上高楼,望断天涯处
查看>>
Quartz web图形化界面
查看>>
Pytorch是什么?关于Pytorch!
查看>>
A Simple OpenCASCADE Qt Demo-occQt
查看>>
tar命令 打包命令
查看>>
mongodb增删改查
查看>>
免费资源:Polaris UI套件 + Linecons图标集(AI, PDF, PNG, P...
查看>>
java基础02
查看>>
ps字体怎么安装?Photoshop CS6安装字体图文教程
查看>>
mysql基本操作之增删改查
查看>>
[ETL实践指南]基于Kettle的MaxCompute插件实现数据上云
查看>>
C语言基础学习基本数据类型-浮点型
查看>>
Linux 第九天: (08月11日) Linux Shell脚本编程
查看>>