Swift中的var
和weak var
有什么区别?Swift中var和var的区别是什么
3
A
回答
9
这与ARC如何管理对象的内存有关。
使用var
限定强参考对象,同时使用weak var
限定弱参考对象。
只要存在对该对象的一个或多个强引用,对象就会一直保留在内存中。使用弱参考可以让您持有对象的引用,而不会增加所谓的“保留计数”。
如果没有其他内容持有对您的weak var
的引用,则该对象将被释放,并且您的weak var
将衰减至nil
。 当您仅使用var
时,不会发生这种情况,因为这定义了对该对象的强引用,因此应防止它释放。
这与“强”与“弱”在Objective-C中的工作方式相同,我建议您阅读this answer,因为它完全适用于Swift。
作为Swift的具体说明,这就是为什么声明为weak var
的任何内容必须是可选类型的原因。
+0
感谢您的好消息! – nonamexd 2015-04-05 20:10:10
相关问题
- 1. {$ var}和$ var之间有什么区别?
- 2. “var = $ {var:-word}”和“var = $ {var:= word}”有什么区别?
- 3. 在bash脚本中$ {VAR:-...}和$ {VAR:?...}之间的区别是什么
- 4. static_cast <int>(var)和*(int *)&var之间的区别是什么?
- 5. JQuery:“var test”和“var $ test”之间的区别是什么
- 6. apache中的$ {var}和%{VAR}有什么区别?
- 7. JavaScript中的'var $ x'和'var x'有什么区别?
- 8. Typescript中var和let有什么区别?
- 9. 什么是$ {VAR}和{$ VAR}
- 10. CocosBuilder中'Doc root var'和'Owner var'有什么区别
- 11. 在JavaScript中,var a = 5有什么区别。和var a = 5?如
- 12. 在Objective-C中Type * var和Type * var之间有什么区别?
- 13. 在PHP中,“string”。$ var和“string $ var”有什么区别?
- 14. var和quote有什么区别?
- 15. ObjectQuery和“var”有什么区别?
- 16. var和const有什么区别?
- 17. $ {var:-word}和$ {var-word}之间有什么区别?
- 18. 使用defvar时* var *和var有什么区别?
- 19. var myvar有什么区别;和var myvar = null;?
- 20. `var in array`和`array.indexOf(var)`有什么区别?
- 21. 'false === $ var'和'$ var === false'之间有什么区别?
- 22. def func(var)和def func =(var)有什么区别?
- 23. var t:MyClass = MyClass(o);有什么区别?和var t:MyClass = o as MyClass;
- 24. var = 1和var = 1的区别
- 25. int:int和var在swift之间有什么区别
- 26. `if var`和`if let` in swift有什么区别?
- 27. Var和新的区别
- 28. var num = 30和var num = new Number(30)在JavaScript中有什么区别?
- 29. 这是什么jQuery代码做 - 函数($)和VAR = VAR => VAR =>
- 30. 'string'== $ var或$ var =='string'的区别?
您能澄清Swift书中“弱引用”一节中的哪一部分对您不清楚吗? – 2015-04-05 20:04:56
我不使用书籍,但在YouTube上观看视频, – nonamexd 2015-04-05 20:05:51
@nonamexd我建议您阅读免费书...它是免费的... – nhgrif 2015-04-05 20:06:05