在处理属性时,我对正确的约定有点困惑。我将通过一个例子来说明我的问题。所以从下面的例子中我知道功能上是“self.loan = self.loan + 250.00;”与“_loan = _loan + 250.00;”相同还是不是?我在网上看到许多教程可能会或可能不会使用这两种方法来访问属性。那么使用_loan和self.loan到底有什么区别呢(我知道self.loan和[self setLoan:]是一样的)
//ClassA.h
@interface ClassA: UIViewController
@property double loan;
@end
//ClassA.m
@implementation ClassA
@synthesize loan = _loan;
-(void)doSomething{
self.loan = self.loan + 250.00; //Exhibit A
_loan = _loan + 250.00; // Exhibit B
}
最佳答案
_loan
是一个变量,为其赋值没有特别的副作用。
self.loan = self.loan + 250.00
本质上与编写 [self setLoan:[self loan] + 250.00]
相同,调用的方法可能除了简单地设置或获取变量的值之外,还可以做其他事情。这些方法做的额外事情取决于您是编写它们的自定义版本(setter 和 getter)还是使用 @synthesize
来创建它们,如果您使用 @synthesize
,您在 @property
声明中应用了哪些属性。
关于iphone - _property 和 self.property 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10889216/