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 命名应具语义、职责清晰
相关推荐
黄雪超2 小时前
JVM——函数式语法糖:如何使用Function、Stream来编写函数式程序?
java·开发语言·jvm
ThetaarSofVenice2 小时前
对象的finalization机制Test
java·开发语言·jvm
思则变2 小时前
[Pytest] [Part 2]增加 log功能
开发语言·python·pytest
lijingguang3 小时前
在C#中根据URL下载文件并保存到本地,可以使用以下方法(推荐使用现代异步方式)
开发语言·c#
¥-oriented3 小时前
【C#中路径相关的概念】
开发语言·c#
CoderCodingNo3 小时前
【GESP】C++四级考试大纲知识点梳理, (7) 排序算法基本概念
开发语言·c++·排序算法
恋猫de小郭3 小时前
Meta 宣布加入 Kotlin 基金会,将为 Kotlin 和 Android 生态提供全新支持
android·开发语言·ios·kotlin
JosieBook4 小时前
【Java编程动手学】使用IDEA创建第一个HelloJava程序
java·开发语言·intellij-idea
Thomas_YXQ4 小时前
Unity3D DOTS场景流式加载技术
java·开发语言·unity
旷世奇才李先生4 小时前
Ruby 安装使用教程
开发语言·后端·ruby