Iphone 为什么不使用self呢。课内通话

Iphone 为什么不使用self呢。课内通话,iphone,ios,memory-management,Iphone,Ios,Memory Management,我已经阅读了谷歌和苹果的代码指南,它们都可以访问实例变量,而不需要自己。在方法实现中调用(getter和setter),即使它们已声明该实例变量的属性。这就是为什么 在我看来,使用自我。在类的方法实现中调用set和get实例变量可以更容易地保留计数 在类中使用getter和setter有什么警告吗?这取决于具体情况。在正常使用时,应始终使用访问器 但是,对于init和dealloc方法,您应该改为使用directivars来释放和设置变量。这是因为setter可能会产生一些副作用,这些副作用在类

我已经阅读了谷歌和苹果的代码指南,它们都可以访问实例变量,而不需要自己。在方法实现中调用(getter和setter),即使它们已声明该实例变量的属性。这就是为什么

在我看来,使用自我。在类的方法实现中调用set和get实例变量可以更容易地保留计数


在类中使用getter和setter有什么警告吗?

这取决于具体情况。在正常使用时,应始终使用访问器

但是,对于init和dealloc方法,您应该改为使用directivars来释放和设置变量。这是因为setter可能会产生一些副作用,这些副作用在类初始化或释放期间不好触发

实际上,将访问器作为init的一部分使用可能不会引起问题。但我已经看到了一些真实世界中的崩溃,其中自定义setter并不期望为零,因此在dealloc中使用访问器导致应用程序崩溃。即使它没有崩溃,它也可能会做很多毫无意义的工作,因为这个类即将死亡