ios – 为什么某些Outlets成为强有力的参考文献,甚至文件规定,出口应该是弱参考

ios – 为什么某些Outlets成为强有力的参考文献,甚至文件规定,出口应该是弱参考,第1张

概述嗨,我是iOS编程的新手.我知道什么是强弱弱的参考.但是当我必须处理网点时,我会混淆使用哪种类型的参考.经过文件说明之后 Outlets should generally be weak, except for those from File’s Owner to top-level objects in a nib file (or, in iOS, a storyboard scene) wh 嗨,我是iOS编程的新手.我知道什么是强弱弱的参考.但是当我必须处理网点时,我会混淆使用哪种类型的参考.经过文件说明之后

Outlets should generally be weak,except for those from file’s Owner to top-level objects in a nib file (or,in iOS,a storyboard scene) which should be strong.

所以我在理解上述语句之后,我们创建的Outlets通常默认是弱的.

但是,在学习一些教程的同时,我遇到了一些代码,人们已经将其作为引用.例如考虑以下代码:

@interface AboutVIEwController : UIVIEwController@property (nonatomic,strong) IBOutlet UIWebVIEw *webVIEw;@end

代码 :

@property (nonatomic,strong) IBOutlet UIWebVIEw *webVIEw;

说我们的AboutVIEwController有一个UIWebVIEw对象.

但是为什么我们需要一个强大的参考UIVIEw对象呢?由于文件国家不应该是弱参考?

还请在上面引用的文档说明中解释文件的所有者对顶级对象的意思?

我在这个网站上经历了很多类似的问题,但是他们都没有帮助我清除我的疑问.所以请帮忙提前致谢 :)

解决方法 用于非顶级GUI元素 – 强或弱 – 取决于您将如何使用其插座.如果你有弱参考
@property (nonatomic,weak) IBOutlet UIWebVIEw *webVIEw;

然后调用方法

[webVIEw removeFromSupevIEw];

您的webVIEw将无效,只能通过添加才能恢复UIWebVIEw

[self.vIEw addSubvIEw:webVIEw];

如果这适合你 – 最好使用弱因为你不需要它时会释放webVIEw的内存.

另一方面,如果以后有强烈的参考

[webVIEw removeFromSupevIEw];

webVIEw仍然会有referenceCount> 0和webVIEw将被释放,只有所有者将明确释放它

self.webVIEw = nil;

或在业主的

- (voID)dealloc

与业主本身一起.

通常没有区别,如果你有静态GUI.如果要删除(不隐藏)某些视图,可以稍后添加它们 – 应该使用强引用.

顶级对象应保持较强.喜欢

@property(nonatomic,retain) UIVIEw *vIEw;

在UIVIEwController.

总结

以上是内存溢出为你收集整理的ios – 为什么某些Outlets成为强有力参考文献,甚至文件规定,出口应该是弱参考全部内容,希望文章能够帮你解决ios – 为什么某些Outlets成为强有力的参考文献,甚至文件规定,出口应该是弱参考所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1110987.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存