- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我是 swift 的新手,如果我问的是愚蠢的问题,请忽略 ;)
如果不再需要可选值,是否需要将它们显式设置为 nil?swift 中的弱引用、强引用怎么样?如果必须手动取消初始化普通变量怎么办?由于无法在 swift 中将 nil 分配给普通变量,请有人告诉我该怎么做。有什么区别?
var someVar:String? vs var someVar:String!
我看到唯一的区别在于访问它们。第一个打印可选中的值,第二个不打印,第二个在值为 nil 时抛出异常。仅此而已吗?
最佳答案
Is it required to explicitly set optional values to nil
不,Automatic Reference Counting
自动释放内存。除非存在循环引用,例如,ClassB 中存在对 ClassA 的强引用,反之亦然。此外,自动引用计数
仅适用于类的实例,不适用于值类型(String
、Int
、Enum
、 ETC)。这些值类型的内存在它们的父实例被取消初始化时被释放。
Is that only the difference?
var someVar:String!
创建一个 Implicitly Unwrapped Optional
,它基本上是一个 optional
,在访问时会自动解包。在 nil
时访问 Implicitly Unwrapped Optional
会导致运行时错误。
关于ios - 可选值会自动取消初始化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38075358/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!