猿问

在目标C中以下划线作为属性名称的前缀

在目标C中以下划线作为属性名称的前缀

我以前一直避免在变量名中添加下划线,这可能是我的大学Java时代的一个难题。所以当我在目标C中定义一个属性时,这就是我自然要做的。

// In the header@interface Whatever{
    NSString *myStringProperty}@property (nonatomic, copy) NSString *myStringProperty;// In the implementation@synthesize myStringProperty;

但是在几乎每一个例子中,它都是这样做的

// In the header@interface Whatever{
    NSString *_myStringProperty}@property (nonatomic, copy) NSString *myStringProperty;// In the implementation@synthesize myStringProperty = _myStringProperty;

我是否应该克服我对下划线的厌恶,因为这是我应该做的一种方式,这种风格是否有一个好的理由成为首选?

最新情况:现在使用自动属性合成,您可以省去@合成,其结果与您已经使用过的结果是一样的。

@synthesize myStringProperty = _myStringProperty;

这清楚地表明了苹果的偏好。从那以后,我学会了不再担心和喜欢下划线。


慕码人8056858
浏览 566回答 3
3回答
随时随地看视频慕课网APP
我要回答