有一个NSStirng类型,retain方式声明的name属性的setter方法内部每一行代码的作用?
2014-08-18 23:00
274 查看
- (void)setName:(NSString *)name
{
判断原有对象和新对象是否是同一个对象,如果是同一个,就没有必要再重新赋值,否则会先release 再retain,就会变成野指针
if (_name !=
name) {
释放保有之前对象的所有权
[_name release];
让实例变量 _name保有新的对象的所有权
_name = [name retain];
}
}
{
判断原有对象和新对象是否是同一个对象,如果是同一个,就没有必要再重新赋值,否则会先release 再retain,就会变成野指针
if (_name !=
name) {
释放保有之前对象的所有权
[_name release];
让实例变量 _name保有新的对象的所有权
_name = [name retain];
}
}
相关文章推荐
- 有一个NSStirng类型,retain时尚宣言name财产setter内部方法的每一行代码的作用?
- 当把属性的语义特性分别声明为assign,retain,copy时, 自动生成setter, getter方法内部实现
- 假设synthesize省略,语义属性声明assign retain copy时间,为了实现自己的setter和getter方法
- @property 属性 assign retain copy的setter方法的内部实现
- Thin的DateChooser代码学习(关于js的函数参数为一个完整的函数以及“对象不支持此属性或方法”错误的解决)(原创,转载请声明)
- 解决"System.Reflection.ReflectionTypeLoadException: 无法加载一个或多个请求的类型。有关更多信息,请检索 LoaderExceptions 属性" 方法
- 尝试向 URI“ ”发出请求时出错。这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP 服务...。出现此错误也可能是由于使用的是 Web 服务代理中的内部类型而没有使用 InternalsVisibleToAttribute 属性。
- Objective-C 声明一个C语言类型的数组和访问方式@property
- Objective-C 基础,类和对象,方法和消息,已声明的属性和存取方法,块对象,协议和范畴类,预定义类型和编码策略
- 运用JAVASCRIPT,写一个类,类名:student,他的属性:name,age,tall,他的方法:getName,getAge,getTall
- 属性声明(property declarations), 自定义属性,自动生成 get 和 set 方法,getter 和 setter
- oc内存管理中retain属性对应的setter实际语法代码实现及原理
- Unity3D用代码方式创建一个Cube并对其进行操作用C#实现
- PHP取得一个类的属性和方法的实现代码
- Android NDK开发篇(四):Java与原生代码通信(原生方法声明与定义与数据类型)
- 如果将synthesize省略,语义特性声明为assign retain copy时,自己实现setter和getter方法
- 定义Person类,Person类中含有两个属性name 和age ,使用compare方法比较两个对象是否为同一个对象。假定name 和age 都相同就似为同一个对象
- ID为GUID类型时使用ObjectDataSource控件的时候的未找到DataObjectTypeName属性的解决方法
- WCF X.b 操作引用了已经从 Y.b 操作导出的消息元素 [http://tempuri.org/:b]。可以通过更改方法名称或使用 OperationContractAttribute 的 Name 属性更改其中一个操作的名称...
- 1.属性 2.方法 3.协议 三种传值方式——代码演示