Why not is it a good practice to use self in initializer method in Objective-C?
本问题已经有最佳答案,请猛点这里访问。
我知道如果任何其他对象正在观察属性的变化,那么在dealloc中使用setter会产生问题。 但为什么我们不应该在初始化器中使用它们?
我在初始化器中使用访问器时从未遇到任何问题。也许这取决于你在setter和getter中有多少魔法 - 如果访问者做了太聪明的事情,你可能会在初始化器中使用它们时遇到麻烦。
现在我想起来了,我甚至在
所以,除非其他人提出一个引人注目的反驳论点,我想你可能会尝试在
不在
重新分配存在一个对称问题,因为重写的访问器可能依赖于不在部分解除分配的对象上调用。还有一个问题是您可能会发送虚假的KVO通知。
这是适当封装的核心。子类不应该关心超类的实现细节。