随着Objective-C的发展(我专门用于iPhone / iPad开发的xcode / ios),你可以通过许多不同的方式来布局你的类实例变量。是否有一种“最佳实践”方式成为共识? (我觉得Apple风格/示例代码在风格方面都很到位)
特别是处理私有变量的想法。以下是我见过的一些管理类的实例变量的方法(为了简洁,我省略了接口/实现) - 我甚至不包括使用下划线命名的合成属性。
·H
@property (nonatomic, strong) NSString *aString;
的.m
@synthesize aString;
- (void)aMethod {
aString = @"Access directly, but if I don't have custom getter/setters and am using ARC, do I care?";
self.aString = @"Access through self";
}
或者这个:
·H
@property (readonly) NSString *aString;
的.m
@property (nonatomic, strong) NSString *aString;
...
@synthesize aString;
或者这个:
的.m
@interface aClass {
NSString *aPrivateString;
}
- (void)aMethod {
aPrivateString = @"Now I have to access directly, but is this atomic/nonatomic?";
}
我不希望这个问题变成一个样式参数,但在我看来应该有一个“如果你没有做某些特定或复杂或奇怪的事情,使用这种方法来定义你的类变量”标准
答案 0 :(得分:2)
我更喜欢对公共和私人ivars / properties使用以下约定:
·H
@property (nonatomic, strong) NSString *publicString;
的.m
@implemention aClass
{
NSNumber *_privateNumber;
}
@synthesize publicString = _publicString;
这样,以_开头的所有内容都是一个ivar(_publicString是属性的底层ivar,这使我无法使用publicString,而我想使用self.publicString)。