MRC内存管理(四)set、get方法
2016-06-25 18:15
281 查看
续上一篇MRC内存管理(三)
在People文件中
在ViewController文件中
在People文件中
//对于对象的描述,需要用retain @property (retain,nonatomic)NSArray *array; //对于字符串的描述,要用copy @property (copy,nonatomic)NSString *name; //对于基本类型的描述,要用assign @property (assign,nonatomic)NSInteger age;
- (void)dealloc{ [_array release]; //打点调用时,如果property描述的是retain(copy),那么set方法会对之前指向的对象release一次,然后对新指向的对象retain(copy)一次。 self.name = nil; [super dealloc]; } - (void)setArray:(NSArray *)array{ if (_array!=array) { //对于对象的set方法,需要先对之前指向的对象release一次,然后对新指向的对象retain一次。 [_array release]; _array = [array retain]; // _array = array; // [_array retain]; } // _array = array; // [_array retain]; } - (NSArray *)array{ return _array; }
在ViewController文件中
- (void)viewDidLoad { [super viewDidLoad]; _p = [[People alloc] init]; NSArray *array = [[NSArray alloc] initWithObjects:@"123",@"333", nil]; //[_p setArray:array]; _p.array = array; NSArray *arr2 = [[NSArray alloc] initWithObjects:@"123",@"432", nil]; [_p setArray:arr2]; [arr2 release]; [array release]; } - (IBAction)buttonClick:(UIButton *)sender { NSLog(@"%@",[_p array]); }
相关文章推荐
- 关于DLL中的哪段代码被执行的处理方法
- 控制执行流程 Thinking in Java 第四章
- Delphi XE10调用百度地图和百度导航
- ImageSwitcher,TextSwitcher实现图片,文字切换
- ConnectionResetError: [Errno 104] Connection reset by peer
- 【iOS开发】强制修改 iOS 状态栏颜色
- 数据库连接池性能比对
- Unity3D游戏引擎基础教程
- poj 1068--Parencodings
- IOS开发之功能模块--输入框随着键盘的位置移动而移动
- Ubuntu12.04安装java8
- jQuery 3.0 的变化
- tomcat启动闪退
- C++12、模板
- gdb 查看当前位置的指令
- 记录一次logstash 死锁问题
- emWin实现BMP位图皮肤之Radio篇
- android中handler和looper的工作原理
- StudyJams-第05课_嵌套布局和字符串
- 易宝支付流程