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 命名应具语义、职责清晰
相关推荐
慢半拍iii1 小时前
数据结构——D/串
c语言·开发语言·数据结构·c++
爱学习的白杨树1 小时前
Sentinel介绍
java·开发语言
Frankabcdefgh1 小时前
Python基础数据类型与运算符全面解析
开发语言·数据结构·python·面试
kaiaaaa2 小时前
算法训练第十五天
开发语言·python·算法
南玖i2 小时前
vue3 + ant 实现 tree默认展开,筛选对应数据打开,简单~直接cv
开发语言·前端·javascript
南枝异客2 小时前
三数之和-力扣
开发语言·javascript·数据结构·算法·leetcode·排序算法
爱意随风起风止意难平3 小时前
AIGC 基础篇 Python基础 05 元组,集合与字典
开发语言·python·aigc
鸢时望巧3 小时前
Shell循环(二)
运维·开发语言
景彡先生3 小时前
C++ 中的 iostream 库:cin/cout 基本用法
开发语言·c++
vvilkim3 小时前
Flutter 核心概念:深入理解 StatelessWidget 与 StatefulWidget
开发语言·javascript·flutter