原文:iOS 关于修饰代理用weak还是assign

对于weak:指明该对象并不负责保持delegate这个对象,delegate这个对象的销毁由外部控制。 对于strong:该对象强引用delegate,外界不能销毁delegate对象,会导致循环引用 Retain Cycles 对于assing:也有weak的功效。但是网上有assign是指针赋值,不对引用计数操作,使用之后如果没有置为nil,可能就会产生野指针 而weak一旦不进行使用后,永 ...

2016-11-23 14:14 0 1398 推荐指数:

查看详情

iOS 关于修饰代理weak还是assign

1.对于strong:该对象强引用delegate,外界不能销毁delegate对象,会导致循环引用(Retain Cycles) 因为我们一般代理的都是当前的控制器 比如scrollView.delegate = self;这时候就成了上面的一个圈的循环引用。如果上图delegate为强 ...

Wed Jun 21 08:27:00 CST 2017 0 1527
ios实战):retain,copy,assign及autorelease ,strong,weak

一,retain, copy, assign区别1. 假设你用malloc分配了一块内存,并且把它的地址赋值给了指针a,后来你希望指针b也共享这块内存,于是你又把a赋值给(assign)了b。此时a 和b指向同一块内存,请问当a不再需要这块内存,能否直接释放它?答案是否定的,因为a并不知道b是否 ...

Mon May 06 06:06:00 CST 2013 1 3589
IOS开发中ARC下的assignweak区别

在ARC中的assignweak可以说非常相像,导致有很多人误以为他们是一摸一样的,在任何时候都可以划等价,但事实却不是这样。 在群里,有人问,id类型的delegate属性到底是用assign还是weak 大家众说纷纭,说都可以的,说assign的,说weak的都有,下面我们来看一本书 ...

Sat Jul 25 19:05:00 CST 2015 0 7291
IOS内存管理retain,assign,copy,strong,weak

IOS的对象都继承于NSObject, 该对象有一个方法:retainCount ,内存引用计数。 引用计数在很多技术都用到: window下的COM组件,多线程的信号量,读写锁,思想都一样。 (一般情况下: 后面会讨论例外情况) alloc 对象分配后引用计数为1 retain 对象的引用 ...

Thu Nov 28 18:12:00 CST 2013 0 6426
iOS-weakassign区别,copy和strong的区别和应用

weakassign区别 经常会有面试题问weakassign的区别,这里介绍一下。 weak和strong是对应的,一个是强引用,一个是弱引用。weakassign的区别主要是体现在两者修饰OC对象时的差异。上面也介绍过,assign通常用来修饰基本数据类型,如int ...

Thu Aug 20 00:04:00 CST 2020 0 592
iosassign、copy 、retain、strong、weak的区别

前言 首先说明一下,没接触过iOS 4及之前版本编程的人,很可能没用过assign、retain、copy关键字,这是因为iOS 5之后添加了ARC的特性,顺便提出来新的strong、weak关键字。相比而言,weak相当于老版本的assign(基本一致),strong相当于retain(一致 ...

Tue Aug 11 19:14:00 CST 2015 0 3959
iOS-weak修饰的对象被释放时,weak指针自动被置为nil的实现原理

我们都知道weak指针不会增加引用计数,并在引用对象被回收的时候自动被置为nil。通常用于解决循环引用问题。那么,自动被置为nil内部又是如何实现的呢? 一、weak的实现原理 概括 Runtime维护了一个weak表,用于存储指向某个对象的所有weak指针。weak表其实是一个 ...

Tue Jun 02 01:29:00 CST 2020 0 620
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM