iOS开发:const/static/extern/UIKIT_EXTERN详解与应用
58 浏览量
更新于2024-09-01
收藏 216KB PDF 举报
"iOS开发中的关键字const、static、extern和UIKIT_EXTERN的理解与应用"
在iOS开发中,理解和正确使用关键字const、static、extern以及UIKIT_EXTERN对于编写高效、可靠的代码至关重要。下面将详细阐述这些关键字的含义和用法。
1、const
const关键字用于声明常量,表示该变量的值不可改变。它可应用于基本类型变量和指针变量。当const修饰指针时,需要注意区分以下四种情况:
- `int const *p`:指针p指向的内容是只读的,但p本身可以改变指向其他地方。
- `int *const p`:指针p本身是常量,即其指向的地址不能改变,但所指内容可变。
- `const int *const p`:指针p及其指向的内容都是常量,不可改变。
- `int const *const p`:同样,p和它指向的内容都不可改变。
const常用于声明全局只读变量,例如:
```objc
NSString *const Kname = @"appkey";
```
此外,static也可与const结合使用,限制全局变量的访问范围和生命周期。
2、static
static关键字用于修饰变量,主要有以下两个作用:
- 当修饰局部变量时,使得该变量在函数调用结束后不会被销毁,而是保持其上次的值。这意味着局部静态变量在整个程序执行期间只初始化一次。例如:
```objc
void test() {
static int count = 0;
count++;
NSLog(@"%d", count);
}
```
每次调用test(),count的值会累加。
- 当修饰全局变量时,使得该变量的可见性仅限于当前源文件,提供了一种封装机制。
3、extern
extern关键字用于声明一个在其他文件中定义的变量或函数。这在多个源文件共享同一变量或函数时非常有用。例如:
```objc
// File1.m
int globalVar = 42;
// File2.m
extern int globalVar;
```
这样,File2.m就可以访问File1.m中定义的globalVar。
4、UIKIT_EXTERN
UIKIT_EXTERN是Apple的UIKit框架中定义的一个宏,用于在框架头文件中声明全局变量或函数,使得它们可以在其他地方被外部引用。它的本质是结合了extern和__attribute__((visibility("default"))),后者用于设置符号的默认可见性,确保框架内的符号可以被外部访问。例如:
```objc
UIKIT_EXTERN NSString *const UIImagePickerControllerMediaType;
```
这声明了一个在UIKit框架中的全局常量UIImagePickerControllerMediaType,其他地方可以通过#import UIKit.h来使用。
总结,理解并熟练掌握这些关键字能帮助开发者写出更健壮、可维护的代码。在实际开发中,合理运用const保证数据安全,使用static控制作用域和生命周期,extern实现跨文件共享,以及UIKIT_EXTERN提升框架的可用性。
2021-01-05 上传
2020-08-25 上传
2018-09-05 上传
点击了解资源详情
点击了解资源详情
2024-11-07 上传
weixin_38695727
- 粉丝: 8
- 资源: 951
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析