iOS常见枚举类型

NSLineBreakMode的区别
typedef enum 
   UILineBreakModeWordWrap = 0, 
   UILineBreakModeCharacterWrap, 
   UILineBreakModeClip, 
   UILineBreakModeHeadTruncation, 
   UILineBreakModeTailTruncation, 
   UILineBreakModeMiddleTruncation, 
} UILineBreakMode; 
   UILineBreakModeWordWrap = 0, 
   以单词为单位换行,以单位为单位截断。 
   UILineBreakModeCharacterWrap, 
   以字符为单位换行,以字符为单位截断。 
   UILineBreakModeClip, 
   以单词为单位换行。以字符为单位截断。 
   UILineBreakModeHeadTruncation, 
   以单词为单位换行。如果是单行,则开始部分有省略号。如果是多行,则中间有省略号,省略号后面有4个字符。 
   UILineBreakModeTailTruncation, 
   以单词为单位换行。无论是单行还是多行,都是末尾有省略号。 
   UILineBreakModeMiddleTruncation, 
   以单词为单位换行。无论是单行还是多行,都是中间有省略号,省略号后面只有2个字符。 



能够定义的button类型有以下6种,

typedef enum {

  UIButtonTypeCustom = 0, 自定义风格
  UIButtonTypeRoundedRect, 圆角矩形 
  UIButtonTypeDetailDisclosure, 蓝色小箭头按钮,主要做详细说明用
  UIButtonTypeInfoLight, 亮色感叹号
  UIButtonTypeInfoDark, 暗色感叹号
  UIButtonTypeContactAdd, 十字加号按钮
} UIButtonType;

在C/C++中使用枚举类型(`enum`)时,**是否需要包含头文件取决于你使用的具体场景和编译环境**。我们来详细说明: --- ### 1. 基本的 `enum` 不需要额外头文件 如果你只是定义和使用一个基本的枚举类型,**不需要包含任何特殊头文件**,因为 `enum` 是 C 和 C++ 语言的关键字,属于语言内置特性。 #### 示例代码(C/C++): ```c #include <stdio.h> // 只是为了 printf,不是为了 enum // 定义枚举类型 enum Color { RED, GREEN, BLUE }; int main() { enum Color favorite = RED; printf("Favorite color: %d\n", favorite); return 0; } ``` ✅ 这段代码可以直接编译运行,不需要额外头文件。`enum` 是语言关键字,就像 `int`、`struct` 一样,无需引入头文件。 --- ### 2. 特殊情况:某些标准库或功能需要头文件 虽然 `enum` 本身不需要头文件,但在以下情况下你需要包含头文件: #### 情况一:使用了标准库中定义的枚举类型 例如,在 C++ 中使用 `<iostream>` 或其他库中预定义的枚举类型: ```cpp #include <iostream> // 必须包含,否则 std::ios_base::openmode 等无法使用 #include <fstream> int main() { std::ofstream file; file.open("test.txt", std::ios::out); // ios 中定义了枚举 return 0; } ``` 这里的 `std::ios::out` 是一个枚举值,必须包含 `<iostream>` 或 `<fstream>` 才能使用。 #### 情况二:使用 C++11 起的 `enum class`(强类型枚举) ```cpp #include <iostream> // 使用 cout 需要这个,但 enum class 本身不需要头文件 enum class TrafficLight { Red, Yellow, Green }; int main() { TrafficLight light = TrafficLight::Red; if (light == TrafficLight::Red) { std::cout << "Stop!" << std::endl; } return 0; } ``` 📌 `enum class` 是 C++11 的语法,编译器原生支持,也不需要额外头文件,但如果你用了输出、容器等标准库功能,则需包含对应头文件(如 `<iostream>`)。 #### 情况三:跨文件使用枚举,需要将 `enum` 定义放在头文件中 如果你想在多个 `.c` 或 `.cpp` 文件中使用同一个枚举类型,应该把它定义在 `.h` 头文件中,并在各个源文件中包含该头文件。 **colors.h** ```c #ifndef COLORS_H #define COLORS_H enum Color { RED, GREEN, BLUE }; #endif // COLORS_H ``` **main.c** ```c #include <stdio.h> #include "colors.h" // 自定义头文件,必须包含才能使用 enum Color int main() { enum Color c = RED; printf("Color: %d\n", c); return 0; } ``` 📌 这里 `"colors.h"` 是你自己写的头文件,必须用 `#include` 包含进来。 --- ### 总结 | 场景 | 是否需要头文件 | |------|----------------| | 使用基本 `enum` 关键字定义枚举 | ❌ 不需要 | | 使用标准库中的枚举常量(如 `std::ios::out`) | ✅ 需要包含相应头文件(如 `<fstream>`) | | 使用 `enum class`(C++) | ❌ 语法本身不需要,但常用 `<iostream>` 等配套头文件 | | 枚举定义在自定义头文件中 | ✅ 必须 `#include "xxx.h"` 才能使用 | --- ### 常见误解澄清 ❌ “枚举需要 `#include <enum.h>`” —— **错误!没有这样的标准头文件。** ✔️ `enum` 是语言关键字,不是函数或宏,不需要引用头文件来启用它。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值