IOS开发---OC语言-㉗内存管理ARC的基本使用
2014-12-04 22:38
711 查看
// main.m // arc的基本使用 #import <Foundation/Foundation.h> #import "Person.h" #import "Dog.h" /* ARC的判断准则:只要没有强指针指向对象,就会释放对象 1.ARC特点 1> 不允许调用release、retain、retainCount 2> 允许重写dealloc,但是不允许调用[super dealloc] 3> @property的参数 * strong :成员变量是强指针(适用于OC对象类型) * weak :成员变量是弱指针(适用于OC对象类型) * assign : 适用于非OC对象类型 4> 以前的retain改为用strong 指针分2种: 1> 强指针:默认情况下,所有的指针都是强指针 __strong 2> 弱指针:__weak */ int main() { Dog *d = [[Dog alloc] init]; Person *p = [[Person alloc] init]; p.dog = d; d = nil; NSLog(@"%@", p.dog); return 0; } void test() { // 错误写法(没有意义的写法) __weak Person *p = [[Person alloc] init]; NSLog(@"%@", p); NSLog(@"------------"); }
/* 文件名:Person.h */ #import <Foundation/Foundation.h> @class Dog; @interface Person : NSObject @property (nonatomic, strong) Dog *dog; @property (nonatomic, strong) NSString *name; @property (nonatomic, assign) int age; @end
/* 文件名:Person.m */ #import "Person.h" @implementation Person - (void)dealloc { NSLog(@"Person is dealloc"); // [super dealloc]; } @end
/* 文件名:Dog.h */ #import <Foundation/Foundation.h> @interface Dog : NSObject @end
/* 文件名:Dog.m */ #import "Dog.h" @implementation Dog - (void)dealloc { NSLog(@"Dog is dealloc"); } @end
相关文章推荐
- iOS 非ARC基本内存管理系列 -手把手教你ARC——iOS/Mac开发ARC入门和使用(转)
- iOS 非ARC基本内存管理系列 5-autorelease方法使用总结
- iOS开发OC基础:OC集合NSSet、NSMutableSet以及NSCountedSet的基本方法的使用
- iOS开发OC基础:OC属性的一些概念和基本使用
- IOS开发---OC语言-⑲内存管理:计数器的基本操作
- IOS开发---OC语言-⑱SEL的使用
- iOS 非ARC基本内存管理系列总结6 -设计微博模型
- IOS开发---OC语言-㉙内存管理:block的使用
- IOS开发语言OC的基本语法以及结构
- IOS开发基础—通过联系人管理实例学习xib的基本使用
- iOS 学习第十六天 OC语言 autorelease基本使用
- iOS 非ARC基本内存管理系列 2-多对象内存管理(2)
- iOS 非ARC基本内存管理系列 2-多对象内存管理(1)
- 【iOS开发-35】有了ARC内存管理机制,是否还需要担心内存溢出等问题?——面试必备
- iOS开发OC基础:OC字典NSDictionary以及NSMutableDictionary基本方法的使用
- iOS 非ARC基本内存管理系列 2-多对象内存管理(1)
- ios 学习第十七天 OC语言 Protocol基本使用
- 【iOS开发-35】有了ARC内存管理机制,是否还须要操心内存溢出等问题?——面试必备
- IOS开发---OC语言-㉖内存的总结
- IOS开发---OC语言-⑰decription的使用