iphone – 弱和分配属性之间的差异?

iphone – 弱和分配属性之间的差异?,第1张

概述我几乎没有问题. 1)其中assign属性将占用内存,因为我们不需要释放以减​​少引用计数? 2)自动归零参考和非自动归零参考有什么区别?它是如何工作的?怎么会记忆? weak适用于对象(它们具有引用计数和所有内容),但弱引用不会增加引用计数.但是一旦对象被释放(从代码中的任何位置),对该对象的任何弱引用都将设置为nil.这非常有用,因为如果仅使用强引用和弱引用,则无法使用无效指针(指向已解除分配 我几乎没有问题.

1)其中assign属性将占用内存,因为我们不需要释放以减​​少引用计数?

2)自动归零参考和非自动归零参考有什么区别?它是如何工作的?怎么会记忆?

解决方法 weak适用于对象(它们具有引用计数和所有内容),但弱引用不会增加引用计数.但是一旦对象被释放(从代码中的任何位置),对该对象的任何弱引用都将设置为nil.这非常有用,因为如果仅使用强引用和弱引用,则无法使用无效指针(指向已解除分配的对象的指针).

assign对引用绝对没有任何作用,它通常用于int,float和其他非对象类型.您当然可以为这样的变量分配一个对象引用,但是如果该对象被释放,您仍然会有一个指向它的内存的指针(现在它是垃圾,当你使用它时会伤害你).

你对“内存使用”的担忧很奇怪 – 引用不占用内存,对象也不行.但是如果要使用它,则无法释放对象.初学者的简单规则是:对于对象,尽可能使用强引用.当您有理由不使用强引用时,请使用weak(通常用于委托和数据源).对于原始类型(int,float,CGRect,…),请使用assign,因为它们不是对象.

总结

以上是内存溢出为你收集整理的iphone – 弱和分配属性之间的差异?全部内容,希望文章能够帮你解决iphone – 弱和分配属性之间的差异?所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/web/1079104.html

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

发表评论

登录后才能评论

评论列表(0条)

保存