gpt4 book ai didi

ios - 可选值会自动取消初始化吗?

转载 作者:可可西里 更新时间:2023-11-01 00:51:16 25 4
gpt4 key购买 nike

我是 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 的强引用,反之亦然。此外,自动引用计数 仅适用于类的实例,不适用于值类型(StringIntEnum、 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com