大驼峰与小驼峰
- 大驼峰
- 每个单词的首字母都大写
- 首个单词也大写
- 不使用下划线或其他分隔符
- 适用于类名、结构体名、协议名
- 文件名
objectivec
UserManager
NetworkRequestHandler
MYCustomButton
- 小驼峰
- 每个单词的首字母都大写
- 首个单词的首字母小写
- 不使用下划线或其他分隔符
- 适用于方法名、变量名、属性名、参数名
objective-c
userName
loadDataFromURL
isLoggedIn
completionHandler
类与协议的命名
- 使用大驼峰法
- 加前缀防止冲突:如NS、UI、AF、MY等
示例:
objectivec
@interface MYNetWorkManager : NSObject
@end
//
@protocal MYDownloadDelegate <NSObject>
@end
方法命名
- 使用小驼峰法命名
- 方法应该表达动作或者行为
- 参数名要体现含义、不要简写
- 使用语义清晰、自然语言风格的多段方法名
示例:
objectivec
- (void)loadDataFromURL:(NSURL *)url withCompletion:(void (^)(NSData *data))completion;
- (BOOL)saveUser:(User *)user error:(NSError **)error;
变量与属性命名
- 使用小驼峰法命名
- 属性不要以下划线开头
- 实例变量通常加_前缀(在实现文件中)
示例:
objectivec
@property (nonatomic, strong) NSString *userName;
@property (nonatomic, assign) NSInteger retryCount;
objectivec
@implementation MYClass {
NSString *_internalState;
}
常量命名
- 使用
k
前缀(旧风格)或使用全局命名空间前缀(现代风格) - 全部大写,单词间用下划线分隔(用于
#define
) - 对象常量建议使用
NSString *const
objectivec
static NSString *const MYDefaultUserName = @"Guest";
#define kMaxRetryCount 3
特殊
- 枚举值:使用前缀加驼峰
- 文件名:与类名一致
- Category:与Catogory名一致
- Blocks命名:以Block结尾