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. 在bash脚本中$ {VAR:-...}和$ {VAR:?...}之间的区别是什么
- 3. JQuery:“var test”和“var $ test”之间的区别是什么
- 4. JavaScript中的'var $ x'和'var x'有什么区别?
- 5. apache中的$ {var}和%{VAR}有什么区别?
- 6. 什么是$ {VAR}和{$ VAR}
- 7. 在JavaScript中,var a = 5有什么区别。和var a = 5?如
- 8. CocosBuilder中'Doc root var'和'Owner var'有什么区别
- 9. 在Objective-C中Type * var和Type * var之间有什么区别?
- 10. var和quote有什么区别?
- 11. ObjectQuery和“var”有什么区别?
- 12. def func(var)和def func =(var)有什么区别?
- 13. `var in array`和`array.indexOf(var)`有什么区别?
- 14. var t:MyClass = MyClass(o);有什么区别?和var t:MyClass = o as MyClass;
- 15. 使用defvar时* var *和var有什么区别?
- 16. var myvar有什么区别;和var myvar = null;?
- 17. `if var`和`if let` in swift有什么区别?
- 18. Var和新的区别
- 19. var num = 30和var num = new Number(30)在JavaScript中有什么区别?
- 20. 'string'== $ var或$ var =='string'的区别?
- 21. 这是什么jQuery代码做 - 函数($)和VAR = VAR => VAR =>
- 22. Javascript中的var name = function(){}和函数名(){}有什么区别吗?
- 23. JavaScript中的$ one和var one有什么区别?
- 24. C#中“var”和“object”的区别
- 25. 在javascript中var函数和函数有什么区别?
- 26. 在Javascript中使用var和this有什么区别?
- 27. C - “char var []”和“char * var”之间的区别?
- 28. 用“var”声明而没有“var”关键字的变量有什么区别?
- 29. dmesg和/var/log/kern.log之间的区别
- 30. C#“var”和C++“auto”之间的区别
您能澄清Swift书中“弱引用”一节中的哪一部分对您不清楚吗? – 2015-04-05 20:04:56
我不使用书籍,但在YouTube上观看视频, – nonamexd 2015-04-05 20:05:51
@nonamexd我建议您阅读免费书...它是免费的... – nhgrif 2015-04-05 20:06:05