Objective-C常用命名规范总结

【OC】常用命名规范总结

文章目录

  • 【OC】常用命名规范总结
    • [1.类名(Class Name)](#1.类名(Class Name))
    • [2.协议名(Protocol Name)](#2.协议名(Protocol Name))
    • [3.方法名(Method Name)](#3.方法名(Method Name))
    • [4.属性名(Property Name)](#4.属性名(Property Name))
    • [5.局部变量/实例变量(Local / Instance Variables)](#5.局部变量/实例变量(Local / Instance Variables))
    • 6.常量名(Constants))
    • [7. 文件名](#7. 文件名)
    • 附加建议(避免的写法)

1.类名(Class Name)

  • 使用 PascalCase(大驼峰)
  • 建议添加前缀(例如:自定义类用 XYZ、系统类如 NS, UI)
  • 表示类的含义、用途、类型

示例:

objc 复制代码
XYZLoginViewController
AppConfigManager
StudentInfoModel

2.协议名(Protocol Name)

  • 一般使用类名 + 协议后缀
  • 常用 "Delegate""DataSource"

示例:

objc 复制代码
UITableViewDelegate
XYZNetworkManagerDelegate

3.方法名(Method Name)

  • 使用 小驼峰(camelCase)
  • 命名应语义清晰、读起来像句子
  • 多个参数要像自然语言一样接续

示例:

objc 复制代码
- (void)loadUserData;
- (BOOL)saveData:(NSData *)data toFile:(NSString *)filename;
- (void)configureCell:(UITableViewCell *)cell withIndex:(NSInteger)index;

4.属性名(Property Name)

  • 也是 小驼峰
  • 尽量避免下划线 _(私有变量可以例外)
  • 布尔值用 is/has/can 开头

示例:

objc 复制代码
@property (nonatomic, strong) NSString *userName;
@property (nonatomic, assign) NSInteger age;
@property (nonatomic, assign) BOOL isLoggedIn;

5.局部变量/实例变量(Local / Instance Variables)

  • 一般小驼峰
  • 如果是私有变量,可加下划线 _

示例:

objc 复制代码
NSString *fileName = @"report.txt";
NSInteger _internalCounter;

6.常量名(Constants)

  • 全大写,用下划线分隔
  • 使用 k 前缀(Apple 不强制,但常见)

示例:

objc 复制代码
#define MAX_RETRY_COUNT 5
NSString *const kAppVersionKey = @"AppVersion";

7. 文件名

  • 和类名保持一致
  • .h / .m 成对命名

示例:

objc 复制代码
LoginViewController.h
LoginViewController.m

附加建议(避免的写法)

不推荐 推荐 原因
btn_submit submitButton 不符合 OC 风格
setdata() setData: 不用小写、下划线
login_vc LoginViewController 类名需 PascalCase
i, j 作常用变量 index, count, row 命名应具语义
temp1, temp2 currentUser, newUser 命名应具语义、职责清晰
相关推荐
mjhcsp1 小时前
C++ char 类型深度解析:字符与字节的双重身份
开发语言·c++·char
程序猿John1 小时前
python深度学习之爬虫篇
开发语言·爬虫·python
peiwang2451 小时前
Linux系统中CoreDump的生成与调试
java·linux·开发语言
努力也学不会java1 小时前
【Spring】Spring事务和事务传播机制
java·开发语言·人工智能·spring boot·后端·spring
虚行1 小时前
WPF入门
开发语言·c#·wpf
hookserver1 小时前
企业微信ipad协议接口优势
http·ios·微信·企业微信·ipad·企微
大熊不是猫1 小时前
PHP实现企业微信 会话存档功能
开发语言·php·企业微信
友友马2 小时前
『 QT 』信号-槽 补充: Qt信号槽断开连接与Lambda槽技巧
开发语言·数据库·qt
新青年5792 小时前
Go语言项目打包上线流程
开发语言·后端·golang
学习编程的Kitty2 小时前
JavaEE初阶——多线程(2)线程的使用
java·开发语言·java-ee