ios - Objective-C 系统宏中的下划线命名约定

标签 ios objective-c macos cocoa-touch macros

我对 Objective-C 宏中的命名约定很好奇。例如,以下代码是每个项目的预编译头文件(.pch 文件)中的标准代码

#import <Availability.h>

#ifndef __IPHONE_5_0
#warning "This project uses features only available in iOS SDK 5.0 and later."
#endif

#ifdef __OBJC__
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
#endif

为什么 __IPHONE_5_0 前缀有 2 个下划线,而 __OBJC__ 前缀和后缀都有 2 个下划线?带前缀的下划线通常表示程序员不应该接触的系统内容。但是后缀下划线呢?谢谢!

最佳答案

我做了一些研究,在 Apple's "Coding Guidelines for Cocoa" 中找到了这个片段:

Note that macros defined by the compiler have leading and trailing double underscore characters. For example: __MACH__

关于ios - Objective-C 系统宏中的下划线命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26684548/

相关文章:

android - Swift 到 Kotlin : Struct to Data Class Example

objective-c - 切换到纵向模态视图时不会调用 willHideViewController

macos - 如何使用 automator 在 mac osx 上制作 droplet?

macos - 如何在一个View中创建两个NSTableView?

ios - ios 中 TableView 的 scrollviewBeginDragging 不起作用

ios - 供应商框架的 Cocoapods header 路径

objective-c - 在设备上测试 ios 应用程序时遇到问题

ios - 你如何在 React Native 中获取框架的大小?

c - dlopen 问题(OSX)

ios - 将数据写入 sqlite xCode