下面来一起学习一下点语法的内存管理 (一):赋值
示例代码: @property (assign)Person *person; @synthesize person=_person; 当使用retain的时候为: -(void)setPerson:(Person *)person{ if(_person!=person){ [_person release]; _person=[person retain]; } } 当使用copy的时候(必须对象要实现copy协议)
-(void)setPerson:(Person *)person{ if(_person!=person){ [_person release]; _person=[person copy]; } }(二):读写性
示例代码: -(void)setPerson:(Person *)person{ @synchronized(self){ _person=person; } } //设置方法
(三):原子性
示例代码: -(Person *)person{ @synchronized(self){ return _person; } }
区别: assign:直接赋值,只是一个别名而已 retain:保留该对象,两个对象指向了同一个位置 copy:开辟了一个新的内存空间,分别指向了不同的内存位置,引用计数分别为1, 不过与之前的对象没有任何关系(特殊情况除外) |
【Objective-C】OC中点语法的内存管理
原创jiangqq900826 ©著作权
©著作权归作者所有:来自51CTO博客作者jiangqq900826的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Objective-C语法之内存管理
1、Objective-C内存管理简介: Objective-C需要自己考虑内存的管理
深入浅出Objective-C objective-c 内存管理 数组 -
Objective-C 内存管理
tive-C 不直接调用dealloc来释放内存。整个Objective...
内存管理 java 移动开发 引用计数 自动释放池 -
Objective-C 语法
前言 这篇教学假设你已经有一些基本的 C 语言知识,包括 C 资料型别、什么是函式、什么是回传值、
移动开发 java c/c++ #import Access -
Objective-C -- NSString的内存管理
NSString等Foundation框架提供的类的内存管理栈 内存地址由高
objective-c 内存管理 字符串 内存地址 bc -
Objective-C中的内存管理
在编程语言中是少不了对内存的管理的,内存对于计算机来说是宝贵的资源,
字符串 Memory 引用计数 -
Objective-C 入门(三)内存管理
Objective-C 入门(三)内存管理
ios iphone 休闲 Objective-C Objective-C入门 -
objective-c中的 内存管理(六)
holydancer原创,如需转载,请在显要位
内存管理 移动开发 java 引用计数 #import