iphone - _property 和 self.property 的区别

标签 iphone objective-c xcode ipad properties

在处理属性时,我对正确的约定有点困惑。我将通过一个例子来说明我的问题。所以从下面的例子中我知道功能上是“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/

相关文章:

ios - 推送和弹出多个 View Controller 会导致随机崩溃

objective-c - 如何使用Reachability类来检测网络状态?

swift - CallKit :- Callkit is working but the callee doesn't get the call

xcode - 安装 OpenSSL Cocoapod 时遇到问题

iphone - 用于 iPhone 开发的有用的第三方 Object-C GUI 插件

ios - Swift:如果删除了 child 的观察者,则不会调用 Firebase 身份验证观察者

objective-c - 使用 MapKit,MKMapview 如何通过在屏幕上垂直对齐两个坐标来定位 map

objective-c - 如何向我的组合框添加空行(无选择)?

c++ - Xcode 7 和 openCV(无 Swift): Core. hpp header 必须编译为 C++

ios - react-native 中的组件样式在应用程序中呈现不一致