都是用于修饰@property声明的变量
assign:用于非oc对象类型,表示直接赋值(默认值)
retain:用于mrc中,用于类属性中有oc对象的情况,表示先推断赋值的对象是否和实例对象变量的值相等。
                若不相等则先retain在赋值。

(即release旧值,retain新值,用于修饰对象)

release:用于mrc中。将对象的引用计数减1
atomic:用于多线程,保证原子性,效率低(默认)
nonatomic:修饰不须要多线程的属性,效率高
strong:用于arc中。强指针。用于修饰oc对象。当类属性中有对象时用其修饰。相当于mrc中的retain
weak:用于arc中,弱指针,一般用于修饰UI控件。

当其指向的对象被释放时,会将该对象指针的值置为nil。

            不能用__weak直接修饰一个对象指针变量,由于用其修饰后,对象以创建就要被释放
            范例:
                        __weak Person * p1 = [Person new]; //报警告。对象没有强指针指向。一创建就要被释放
copy:用于修饰NSString和block类型的成员变量,是浅复制,不会申请新的内存空间。

release旧值copy

            新值
mutableCopy:用于修饰NSString和block类型的成员变量。是深复制。会又一次申请一块内存空间。

mrc内存管理原则:谁创建谁release 。谁retain谁release
arc内存管理原则:当一个对象没有强指针指向时,该对象就被马上释放,arc中不能调用[super dealloc]
对象的循环引用的解决方法:人拥有一条狗,狗又有一个主人,这就是对象的循环引用
    mrc中:一端用retain,一端用assign。retain端要在dealloc方法中先release该类的对象属性
    arc中:一端用strong,一端用weak

最新文章

  1. R包之间冲突带来的奇怪错误
  2. nodeJS分层
  3. js 事件函数中的参数带换行符或换行标签都不能起作用的解决方法
  4. jquery ajax/post/get 传参数给 mvc的action
  5. Eclipse配置C/C++开发环境
  6. Android 多点手势识别详解
  7. Java面试题之八
  8. 每天学点Linux:一
  9. android 程序崩溃crash日志的捕捉
  10. WebxFrameworkFilter 请求响应过程
  11. maven项目发布不成功的问题
  12. GOQTTemplate简单介绍
  13. 算法笔记 3.2 codeup1934 找X
  14. CentOS7 安装PHP7的redis扩展:
  15. 内存映射函数remap_pfn_range学习——示例分析(2)
  16. 安装logstash+kibana+elasticsearch+redis搭建集中式日志分析平台
  17. Java虚拟机(JVM)体系结构概述及各种性能参数优化总结
  18. urlrewritefilter 本地windowsxp 上正常 使用 ,但是 到linux服务器 上 则时好时坏 ,不起作用
  19. pom.xml配置文件内容记录
  20. noi题库(noi.openjudge.cn) 1.13编程基础之综合应用 T12 分数求和

热门文章

  1. 玩转阿里云server——安装WebserverTomcat7
  2. php7 兼容 MySQL 相关函数
  3. ::的类名前有个 & ,什么意思?
  4. 2.Xml与多个对象的映射(聚合或组合)及注意事项
  5. VNC Server模拟攻击实战
  6. JSON.parse和eval()的区别
  7. NOIP2016 天天爱跑步(线段树/桶)
  8. stackFromBottom-listview 内容从底部开始填充
  9. amazeui学习笔记--css(布局相关3)--辅助类Utility
  10. web服务器软件(Nginx,Apache,IIS,Lighttpd)介绍