Google Object -C style Guide 很不错,读了之后有些地方觉得还不错,特记录下来,加深印象
1. 方法类型 + 和 - 之后需要添加一个空格。
2. 属性以内部变量以_开始
3. 方法调用[ ] 类名和参数名在左右括号里不需要添加空格。但是一个方法调用完之后在连续调用,就需要添加空格,如:[[[self alloc] initWithString:string] autorelease];
4. 函数方法名以小写开头,category的文件名用+比如"NSString+MyCategory.h "
category的名字应在类的后面添加一个空格,
如@interface NSString (MyCategory)
@end
5. Dealloc方法放在最上面,方便释放变量。
6. 操作符和=号两边要添加空格。
7. Protocols相关,在id和协议的名字之间不能添加空格
@interface MyProtocoledClass : NSObject<NSWindowDelegate> {
@private
id<MyFancyDelegate> delegate_;
}
- (void)setDelegate:(id<MyFancyDelegate>)aDelegate;
@end
8. 不需要在初始化的时候设置一个对象为0 或者设置为nil ,对象初始化的时候会自动设置为nil。
9. 对象的nil判断。
对一个nil对象发送消息是允许的,如果要判断nil,主要是用于逻辑相关,而不是为了防止程序崩溃。
10. BOOL值的认识。
BOOL 是signed char ,它能有许多值,而不仅仅包含YES(1) 或者 NO(0), 平常确实要多注意。
11. 与属性相关联的变量必须以 _ 结尾 。
@interface MyClass : NSObject {
@private
NSString *name_;
}
@property(copy, nonatomic) NSString *name;
@end
@implementation MyClass
@synthesize name = name_;
- (id)init {
...
}
@end
12. 对NSString 的属性,一定要用copy:@property(copy, nonatomic) NSString *name;