是否会自动取消初始化可选值?

时间:2016-06-28 11:45:57

标签: ios swift swift2

我是新手,如果我提出愚蠢的问题,请忽略;)

是否需要将可选值显式设置为nil,如果不再需要它们? 如此弱,强大的参考在swift中如何运作? 如果必须手动取消初始化常量变量怎么办?由于无法在swift中为正常变量分配nil,有人请告诉我如何操作。 有什么区别?

var someVar:String? vs var someVar:String!

我看到唯一的区别在于访问它们。第一个打印值在可选和第二个不打开,第二个打印异常,当值为零时。这只是区别吗?

1 个答案:

答案 0 :(得分:4)

  

是否需要将可选值显式设置为nil

不,Automatic Reference Counting自动释放内存。除非存在循环引用,例如,在ClassB中强烈引用ClassA,反之亦然。此外,Automatic Reference Counting仅适用于类的实例,而不适用于值类型(StringIntEnum等)。这些值类型的内存在其父实例被取消初始化时被释放。

  

这只是区别吗?

var someVar:String!创建Implicitly Unwrapped Optional,基本上是optional,在访问时会自动解包。在Implicitly Unwrapped Optional nil时访问Check your req.body.author, req.body.rating, req.body.reviewText They must be coming as empty string 会导致运行时错误。