案例 一个人拥有一只狗,一只狗拥有一个主人。

@interface Person :NSObject@property(nonatomic,strong) Dog* dog;
@end
@interface Dog :NSObject@property(nonatomic,strong) Person* person;
@end
 Person *p=[Person new];Dog * d=[Dog new];d.person=p;p.dog = d;

上述代码块会行成循环引用问题

解决方法:一端用strong,一端用weak。

@interface Person :NSObject@property(nonatomic,strong) Dog* dog;
@end@interface Dog :NSObject@property(nonatomic,weak) Person* person;
@end
ARC中的@property参数
strong : 用于OC对象, 相当于MRC中的retain
weak : 用于OC对象, 相当于MRC中的assign
assign : 用于基本数据类型, 跟MRC中的assign一样
copy : 一般用于NSString, 跟MRC中的copy一样

ios 内存管理的理解(四)ARC下循环引用问题相关推荐

  1. OC 知识:彻底理解 iOS 内存管理(MRC、ARC)

    1. 什么是内存管理 程序在运行的过程中通常通过以下行为,来增加程序的的内存占用 创建一个OC对象 定义一个变量 调用一个函数或者方法 而一个移动设备的内存是有限的,每个软件所能占用的内存也是有限的 ...

  2. iOS内存管理系列之一:对象所有权与引用计数

    原文地址:[转]iOS内存管理系列之一:对象所有权与引用计数作者:anynot 内存管理是iPhone或iPad开发中最为重要的一部分.掌握好了内存管理,开发出的应用就能运行流畅:掌握不好,开发出的东 ...

  3. [iOS]ARC下循环引用的问题

    转载自:http://blog.cnbang.net/tech/2085/ [iOS]ARC下循环引用的问题 2013-8-30 最初 最近在开发应用时碰到使用ASIHttpRequest后在某些机器 ...

  4. ios 内存管理的理解(三)ARC下 对象内存管理

    1 ARC工作原理详述 ARC是Objective-C编译器的特性,而不是运行时特性或者垃圾回收机制,ARC所做的只不过是在代码编译时为你自动在合适的位置插入release或autorelease 2 ...

  5. ios 内存管理的理解(二)ARC概念及原理

    1.什么是ARC? Automatic Reference Counting,自动引用计数,即ARC,可以说是WWDC2011和iOS5所引入的最大的变革和最激动人心的变化.ARC是新的LLVM 3. ...

  6. ios 内存管理的理解(一) 简述

    1. 内存管理的范围 所有的OC对象(继承自NSObject类) 本质原因:是因为对象和其他数据类型在系统中的存储空间不一样,其他局部变量主要存放于栈中,而对象存储于堆中. 当代码块结束时,这个代码块 ...

  7. ARC下循环引用的问题

    最初 最近在开发应用时碰到使用ASIHttpRequest后在某些机器上发不出请求的问题,项目开启了ARC,代码是这样写的: @implement MainController - (void) fe ...

  8. ios 内存管理的理解(五)ARC使用特点及注意事项

    1 ARC使用特点及注意事项 不允许调用release,retain,retainCount 允许重写dealloc方法,但是不允许调用[super dealloc] 2 ARC使用注意事项 ARC中 ...

  9. iOS 开发:彻底理解 iOS 内存管理(MRC 篇)

    本文首发于我的个人博客:「程序员充电站」 文章链接:「传送门」 本文更新时间:2021年08月17日17:11:59 本文是 「iOS 开发:彻底理解 iOS 内存管理」系列的「MRC 篇」. 用来对 ...

最新文章

  1. 各小组对于自己产品的预期“软件下载/用户人数”
  2. WCF 第四章 绑定 绑定元素
  3. 多环境下读取不同的配置文件
  4. JavaScript 技术篇 - js在一个元素节点下包含多个text文本情况下的指定文本提取方法
  5. JVM-class文件完全解析-方法表集合
  6. 《Java开发手册》解读:大整数传输为何禁用Long类型?
  7. 22行满分代码:L1-054 福到了 (15分)
  8. cognos10 安装部署
  9. 知道硬盘很慢,但没想到比 CPU Cache 慢 10000000 倍!
  10. LeetCode 之 JavaScript 解答第98题 —— 验证二叉搜索树(Validate Binary Search Tree)
  11. DPDK-UIO 驱动认识
  12. Atititi atiitt eam pam资产管理 购物表去年.xlsx
  13. 华为IPD你学不会(转)
  14. 值得收藏几个Web木马后门查杀扫描工具
  15. 中国计算机协会a类,中国计算机学会推荐A类国际学术会议列表.DOC
  16. win7 把html作为桌面,微软开始部署桌面HTML5版必应Bing
  17. 为海思u-boot快速生成reg_info.bin文件
  18. HDU 4508 湫湫系列故事――减肥记I 【完全背包】
  19. Java 快乐练习口算
  20. WPF 延时操作实现 --- Application.DoEvents()

热门文章

  1. 千呼万唤始出来,OpenCV 4.0正式发布!
  2. mysql安装数据自定义_mysql数据库自定义怎么安装
  3. 【EI会议】 2021年图像处理与智能控制国际学术会议(IPIC 2021)
  4. php yii 海报,php – 找不到Yii2主题集成图像
  5. 大数据分析必须要会的数据预处理操作(二)!!!
  6. android属性动画作用范围,Android 属性动画:这是一篇全面 详细的 属性动画 总结攻略...
  7. java caffe 验证码_Caffe深度学习 验证码识别 机器学习
  8. 栈的top指针指向哪里_数据结构-栈
  9. ant vue 离线文档_超全离线开发手册
  10. 设计模式 建造者模式