66问答网
所有问题
当前搜索:
delegate为什么用weak
delegate
作为属性,
为什么
要
用weak
修饰
答:
weak指针主要用于“父-子”关系,父亲拥有一个儿子的strong指针,因此是儿子的所有者;
但是为了阻止所有权回环,儿子需要使用weak指针指向父亲
;你的viewcontroller通过strong指针拥有一个UITableview,tableview的datasource和delegate都是weak指针,指向viewcontroller,防止回环;
delegate
作为属性,
为什么
要
用weak
修饰
答:
楼主你好!根据你的描述,让我来给你回答! 你的viewcontroller通过strong指针拥有一个UITableview,tableview的datasource和
delegate
都是
weak
指针,指向viewcontroller,防止回环; 希望能帮到你,如果满意,请记得采纳哦~~~
iOS中的强代理(strong
delegate
)
答:
一般来说, iOS中的代理都是weak类型的,
这是因为一般代理者都是代理持有者的父对象, 而父对象会持有代理持有者. 因此
, 如果代理是强类型, 则会导致循环引用. 虽说代理者不一定得是代理持有者的父对象, 但是这是最常见的使用场合, 用于子对象向父对象传递数据.比如一个UIViewController是一个View的...
iOS开发中的循环引用
答:
delegate是开发中比较常见到的循环引用
,一般在声明delegate的时候,都需要使用弱引用weak或者assign。MRC下,只能用assign,ARC下,最好用weak,因为weak
修饰
的变量在释放后,会自动指向nil,防止出现野指针。在控制器(Controller)内,创建NSTimer实例作为其属性,由于定时器创建后,也会强引用该控制器对象...
delegate
的内存管理属性是
weak
还是assign
答:
而datasource与viewcontroller是一对一的关系,如果viewcontroller被销毁,则其对应的datasource也就没有存在的意义了,且viewcontroller的销毁也会马上引发datasource的销毁。所以datasource的
delegate
成员变量内存管理属性声明为assign是没有问题的,但
weak
属性有一个额外的好处是如果在view controller销毁的时候,...
OC中
weak
的原理
答:
strong :该对象强引用
delegate
,引用计数+1,外界不能销毁 delegate 对象,会导致循环引用( Retain Cycles )weak :指明该对象并不持有delegate这个对象,delegate的销毁由外部控制。当 delegate 指向的对象销毁后,自动 delegate = nil 。assign :具有 weak 的效果,但需要手动设置 nil 。
为什么用 weak
...
ios
修饰
词作用
答:
assign与weak,它们都是弱引用声明类型,但是他们是有区别的。1.
用weak
声明的变量在栈中就会自动清空,赋值为nil。2.用assign声明的变量在栈中可能不会自动赋值为nil,就会造成野指针错误!以
delegate
的声明为例,在MRC中多delegate声明使用的是assign,这是为了不造成循环引用,这时,我们需要在-dealloc...
strong和
weak
答:
也就自动置为 nil。
weak使用
场景 1.在
delegate
,block,NSTimer 等中使用,以避免循环引用所带来的内存泄漏。2.我们使用xib时,拖出来的控件都
使用weak
这一属性。因为xib上的控件,我们的UIView已经对控件有了强引用,控件回跟着ViewController一起销毁,所以这个时候不必要必须强引用。
...arc引入之后,ios增加了几个
修饰
符,分别是
什么
?并解释何时应该使用...
答:
__weak一般用在delegate关系中防止循环引用或者用来
修饰
指向由Interface Builder编辑与生成的UI控件。__autoreleasing 表示在autorelease pool中自动释放对象的引用,和MRC时代autorelease的用法相同。定义property时不能使用这个修饰符,任何一个对象的property都不应该是autorelease型的。一个常见的误解是,在ARC中...
iOS代理了协议之后没法正常回调?
答:
1. 没有设置代理 XXX.
delegate
= self 2. 方法名写错 3. 新方法得判断iOS版本 4. 引用对象被释放了 5. 具体功能info.plist配置错误 6. 在block中设置有时会出现代理不回调问题(用通知代替)错误1,2 :对于错误1,2一般是很新的新手或者老手脑袋短路极不正常时犯的...
1
2
3
4
5
涓嬩竴椤
其他人还搜
delegate和devolve
setitemdelegate
entrust和delegate
delegatefolders
delegate和deputy
delegate和event
delegate的用法
scenedelegate
delegate_to