内存管理 accessor method 里的 reference count
来源:互联网 发布:基地 知乎 编辑:程序博客网 时间:2024/05/01 23:47
苹果adc文章
stepwise 的文章
example 1: set method:
- (void)setTitle:(NSString *)newTitle
{
[title autorelease];
title = [newTitle copy];
}
example 2: copy
NSMutableString *foo = [NSMutableString stringWithCString:"foo"];
[myWindow setTitle:foo];
[foo appendString:@"bar"];
例1 中将传递过来的newTitle 被copy , 而不是 retain, 因为只想要一个nsstring 对象的拷贝,而不是要共享他,
title 先被release , 因为title 指向了一个NSString 对象, 如果不autorelease,将失去这个对象。一旦title 被指向新的NSString, 就无法再释放 title 原来的数值。
还有,是 autorelease, 而不是release. 否则, title 还没有来得及被设为新的值, 就被释放既指向垃圾。
例3
{
/* ... */
title = [myWindow title];
[myWindow setTitle:newTitle];
/*...*/
// 原来的title 现在已经是垃圾,因为他在 setTitle 方法里已经被释放了。
}
stepwise 的文章
accessor methods
example 1: set method:
- (void)setTitle:(NSString *)newTitle
{
[title autorelease];
title = [newTitle copy];
}
example 2: copy
NSMutableString *foo = [NSMutableString stringWithCString:"foo"];
[myWindow setTitle:foo];
[foo appendString:@"bar"];
-
To copy 还还还还or to retain?
value objects - 对象封装了离散的,有限的数据, 如 NSNumbers ,NSStrings.
copy - 需要对象的快照 snapshot 给自己。
retain-需要共享对象时。
entity objects - 对象很大,而且有下层对象。 如 NSView, NSWindow.
retain- 永远。
Value Objectentity objectcopy需要对象的快照 snapshot 给自己。对象必须符合 NSCopying 协议。
n/a retain 需要共享对象时
永远
例1 中将传递过来的newTitle 被copy , 而不是 retain, 因为只想要一个nsstring 对象的拷贝,而不是要共享他,
title 先被release , 因为title 指向了一个NSString 对象, 如果不autorelease,将失去这个对象。一旦title 被指向新的NSString, 就无法再释放 title 原来的数值。
还有,是 autorelease, 而不是release. 否则, title 还没有来得及被设为新的值, 就被释放既指向垃圾。
例3
{
/* ... */
title = [myWindow title];
[myWindow setTitle:newTitle];
/*...*/
// 原来的title 现在已经是垃圾,因为他在 setTitle 方法里已经被释放了。
}
- 内存管理 accessor method 里的 reference count
- 内存管理 reference count
- 内存管理 reference count
- block里的内存管理
- Swift里的内存管理:内存管理、weak和unowned
- thread和Reference Counting内存管理造成的问题
- 内存管理里的一些小细节
- SQL里的count(*)、count(1)、count(column_name)的区别
- 【amazing cocos2d-x 3.0之十三】内存管理(1):引用计数(Reference Count)和自动释放池(AutoReleasePool)
- ie里window的method
- IT English Collection(22)of Accessor method
- IOS深入学习(22)之Accessor method
- gobject reference count summary
- reference count(引用计数)
- PHP里的引用(Reference)
- Java Method Reference ::
- java8 [method reference]
- Lambda Expressions (Method Reference)
- xhtml 标签集合
- 接口需求分析
- 正则表达式限定符
- 常见的加密方法与破解思路
- 如何跟踪入侵IP
- 内存管理 accessor method 里的 reference count
- 常用JS网页广告代码
- Google Web Toolkit 入门
- 解决JDk1.6无法安装得问题
- 写第一篇文章
- 三层架构各层关系分析比较及其约定
- 有没有网络连接
- 用Mixer API函数调节控制面板的音频设置
- 今日偶得7/22