object-c多个对象的内存管理
来源:互联网 发布:威海博优化纤 编辑:程序博客网 时间:2024/04/29 04:36
打开Xcode,新建Command Line Tool工程(Type选择Foundation),直到完成;
在工程下新建文件:Book和Person;
Book.m
#import "Book.h"@implementation Book- (void)setPrice:(int)price{ _price = price;}- (int)price{ return _price;}- (void)dealloc{ NSLog(@"Book对象被回收"); [super dealloc];}@end
Person.m
#import "Person.h"@implementation Person- (void)setBook:(Book *)book{ _book = [book retain];}- (Book *)book{ return _book;}- (void)dealloc{ [_book release]; NSLog(@"Person对象被回收"); [super dealloc];}@end
main.m
#import <Foundation/Foundation.h>#import "Person.h"#import "Book.h"int main(int argc, const char * argv[]){ Book *b = [[Book alloc] init]; Person *p1 = [[Person alloc] init]; [p1 setBook:b]; [b release]; b = nil; [p1 release]; p1 = nil; return 0;}
Book.h和Person.h自己根据.m添加完整。
编译并运行:
2014-10-30 23:10:28.022 02-多个对象的内存管理[991:303] Book对象被回收
2014-10-30 23:10:28.024 02-多个对象的内存管理[991:303] Person对象被回收
Program ended with exit code: 0
object-c内存管理原则:
谁创建,谁release;
谁retain,谁release;
使用时引用计数器加一(retain或alloc/new),释放时计数器减一;
注:
Xcode默认ARC是 ON 的状态,这些代码编译不过,需要修改项目的编译设置:“Objectice-C Auto Reference Counteting”设为NO。
0 0
- object-c多个对象的内存管理
- Object-c------多个对象之间的内存管理
- 黑马程序员-Object C之单个对象和多个对象的内存管理
- Objective-C - 多个对象之间的内存管理
- Object-C的内存管理
- object-c的内存管理
- Objective-C内存管理第二弹:多个对象的内存管理
- Objective-c - 多个对象的内存管理之:一个对象作为另一个对象的属性
- 多个对象之间的内存管理
- 多个对象的内存管理
- 多个对象的内存管理分析
- object c 内存管理
- Object c 内存管理
- object-c 内存管理
- object-c 内存管理
- Object C 内存管理
- Object C 内存管理
- Object-c 内存管理
- ibatis+spring+springmvc+easyui 批量添加
- C语言开发环境设置Cook
- WEB程序设计之javascript
- java身份证验证
- C++STL::string实例化
- object-c多个对象的内存管理
- mac 使用过程中的遇到的一些问题
- 蛋蛋的问题(二)
- ImageLoader加载图片以及清理缓存
- HDU 1992 Tiling a Grid With Dominoes
- 基于thinkphp建站第二天
- 用iconv 文件格式转换
- 静态代理和动态代理
- struts的跳转和项目的工程结构是什么样的