Objective-c ARC机制概述
来源:互联网 发布:元数据由什么存储 编辑:程序博客网 时间:2024/05/29 12:33
/*
Objective-c ARC机制
1> ARC机制概述:
ARC,即Automatic Reference Counting,自动引用计数器.ARC是LLVM3.0的一项特性,解决了手动管理内存的麻烦.
在ARC机制下,永远不需要写retain,release,autorelease,永远不需要手动的调用dealloc这几个关键字,这是ARC的最基本原则.
ARC是LLVM3.0的一项特性,解决了手动管理内存的麻烦.当ARC开启的时候,编译器会自动的在适当的地方插入retain,release,autorelease代码.
2> ARC机制下,对象是如何被释放的.
本质:当对象的引用计数器的值是0的时候,自动释放.
ARC:在ARC机制下,永远不需要写retain,release,autorelease,编译器会自动的在适当的地方插入retain,release,autorelease代码.
表象:一个对象只要没有强指针指向,这个对象就会被立即会收掉.
3> 强指针和弱指针
强指针:默认情况下,我们声明一个指针就是强指针.也可以使用__strong来修饰声明的指针是强指针.
例:__strong YYPerson *xiaoming;
弱指针:使用__weak标识的指针就叫做弱指针.
例:__weak YYPerson *xiaoming;
在ARC机制下,一个对象只要没有强指针指向,这个对象就会被立即会收掉.
*/
#import <Foundation/Foundation.h>
#pragma mark -
//人类的声明
@interface YYPerson : NSObject
@property NSString *name;
- (void)run;
//自定义构造方法
- (instancetype)initWithName:(NSString *)name;
+ (instancetype)personWithName:(NSString *)name;
@end
//人类的实现
@implementation YYPerson
//重写dealloc监视对象的回收
- (void)dealloc
{
NSLog(@"%@释放了",_name);
}
- (void)run
{
NSLog(@"%@在跑步!",_name);
}
//自定义构造方法
- (instancetype)initWithName:(NSString *)name
{
if(self = [superinit])
{
self.name = name;
}
return self;
}
+ (instancetype)personWithName:(NSString *)name
{
return [[selfalloc]initWithName:name];
}
@end
#pragma mark -
int main(int argc,const char * argv[]) {
//创建人对象并初始化
YYPerson *xiaoming = [[YYPersonalloc ]initWithName:@"小明"];
//调用方法
[xiaoming run];
return 0;
}
- Objective-c ARC机制概述
- objective-c中ARC机制
- objective-c内存管理ARC关键字概述
- objective-c内存管理ARC关键字概述
- objective-c内存管理ARC关键字概述
- 黑马程序员----objective-C ARC机制
- 深入理解Objective C的ARC机制
- 深入理解Objective C的ARC机制
- 【Objective-C】OC中ARC和垃圾回收机制
- 【Objective-C】ARC机制下的类型转换
- objective-c的ARC机制,strong和weak
- Objective-c - ARC机制下的循环引用
- [objective-c] ARC 补充
- 【Objective-C】ARC学习
- Objective-c ARC
- [Objective-C] 理解 Objective-C 的 ARC
- 理解 Objective-C 的 ARC
- 理解 Objective-C 的 ARC
- Android Studio 导入项目时卡在界面中的解决办法
- java中的native方法和修饰符(转)
- zTree入门篇
- superslide实现图片轮播
- git init 与 git init –bare 的区别
- Objective-c ARC机制概述
- Android状态栏适配源码解析
- 实习小记 C#连接体重计串口通讯小结
- Git中文件的4种状态
- TSCActiveX条码打印方法描述
- linux 下编辑 rc.local 设置开机启动
- 快速构建SpringBoot程序
- [C#] 継承されているディレクトリのアクセス権を変更、削除する
- Glide踩坑记