Swift - deinit方法中的自我

问题描述 投票:0回答:1

在swift deinit方法中使用self是一种好习惯吗?在目标C中,我们避免在init和dealloc方法中使用self。同样适用于swift?

swift
1个回答
3
投票

在90%的情况下,你必须在self中使用deinit。 Swift和Objective-C都有。

这实际上是该方法的重点 - 在重新分配之前访问该对象的最后机会。

你应该避免的是将self存储到deinit的另一个对象,而不是访问self

另外,在Objective-C中,有些人试图避免在initdealloc中使用属性设置器和getter来避免可能隐藏在其中的危险副作用,而是直接访问ivars(_prop = nil而不是self.prop = nil)。这在Swift中实际上是不可能的,因为没有ivars。但是,Swift在这方面更安全。请注意,Objective-C中的_prop = nil仍然访问self。这只是self->_prop = nil的简短语法。我们正在避免财产,而不是self

© www.soinside.com 2019 - 2024. All rights reserved.