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 命名应具语义、职责清晰
相关推荐
Chester_19997 小时前
CSP202203C.计算资源调度器
开发语言·数据结构·c++·蓝桥杯
EXI-小洲8 小时前
Java 操作 Word:字符串替换、图片插入、动态生成表格与API接口下载
java·开发语言·spring boot·word
会周易的程序员9 小时前
给 PLC 写一个字节码虚拟机:STVM 虚拟机架构设计
开发语言·c++·虚拟机·软plc·iec61131·stvm
机器视觉知识推荐、就业指导9 小时前
为什么老说“纯 Qt 没啥就业市场”?
开发语言·qt
telepan9 小时前
Qt 开发避坑与性能指南:如何优雅、安全地定义全局常量字符串?
开发语言·qt
m0_695251499 小时前
Qt MaintenanceTool 使用国内镜像加速下载(超详细教程)
开发语言·qt
大衛說10 小时前
《Python 从入门到精通》系列总览与学习路线
开发语言·python·学习
可乐鸡翅yeah_12 小时前
hls.js 内存泄漏实战排查,直播 M3U8 长时间播放异常定位方案
开发语言·javascript·python·django·ecmascript·m3u8·m3u8在线
2601_9622035112 小时前
Java进阶07集合(续)
java·开发语言
郑州光合科技余经理12 小时前
本地生活服务系统:模块边界与结算字段怎么拆
java·开发语言·前端·后端·系统架构·uni-app·php