在swift deinit方法中使用self是一种好习惯吗? 在目标C中,我们避免在init和dealloc方法中使用self。 同样适用于swift?
答案 0 :(得分:3)
在90%的案例中,您在self
中使用deinit
。 Swift和Objective-C都有。
这实际上是该方法的重点 - 在重新分配之前访问该对象的最后机会。
您应该避免将self
存储到deinit
的其他对象,而不是访问self
。
此外,在Objective-C中,有些人试图避免在init
和dealloc
中使用属性设置器和getter来避免可能隐藏在其中的危险副作用,并且他们直接访问ivars相反(_prop = nil
而不是self.prop = nil
)。这在Swift中实际上是不可能的,因为没有ivars。但是,Swift在这方面更安全。请注意,Objective-C中的_prop = nil
仍然可以访问self
。它只是self->_prop = nil
的简短语法。我们避免使用属性,而不是self
。