iOS 常量和全局变量的定义

本文介绍如何使用枚举定义常量,并讨论了不同类型的常量定义方式。此外,还详细介绍了如何通过extern关键字定义全局变量,以及在Objective-C项目中管理这些变量的有效策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、常量:

如果要定义一组相关的常量,尽量使用枚举类型( enumerations ),枚举类型的命名规则和函数的命名规则相同:

1
2
3
4
5
6
7
// 定义一个枚举,注意带有 `_` 的名称是不会被使用的
typedef enum _NSMatrixMode {
NSRadioModeMatrix = 0,
NSHighlightModeMatrix = 1,
NSListModeMatrix = 2,
NSTrackModeMatrix = 3
} NSMatrixMode;

使用匿名枚举定义 bit map :

1
2
3
4
5
6
7
enum {
NSBorderlessWindowMask = 0,
NSTitledWindowMask = 1 << 0,
NSClosableWindowMask = 1 << 1,
NSMiniaturizableWindowMask = 1 << 2,
NSResizableWindowMask = 1 << 3
};

使用 const 定义浮点型或者单个的整数型常量,
enum {
kMyEnum = 2;
};

如果要定义一组相关的整数常量,应该优先使用枚举。常量的命名规范和函数相同:
1
const float NSLightGray;

不要使用 #define 宏来定义常量,如果是整型常量,尽量使用枚举,浮点型常量,使用 const 定义。 #define 通常用来给编译器决定是否编译某块代码,比如常用的:
1
#ifdef DEBUG

注意到一般由编译器定义的宏会在前后都有一个 __ ,比如 __MACH__ 。 

二、全局变量

1.extern:
const & extern区别 :const:只读变量,不允许修改;extern:全局变量 

使用extern关键字法:

        1 、新建Constants.h文件(文件名根据需要自己取),用于存放全局变量;

        2、 在Constants.h中写入你需要的全局变量名,但是在定义时不能对其进行初始化,否则就出错例如:

                  NSString *url;//指针类型
                 int count;//非指针类型

        3  、在需要用到全局变量的文件中引入此文件:

                   #import "Constants.h"  

        4、给全局变量初始化或者赋值:

  1.  extern NSString *url;     
      
    url = [[NSString alloc] initWithFormat:@"http://www.hbcfg.net"];//指针类型;需要alloc   
      
    extern int count;   
      
    count = 0;//非指针类型  

在使用全局变量的时候就和使用普通变量一样使用了。

当然还有其他的方法:可以在AppDelegate中声明并初始化全局变量,使用单例访问全局变量等


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值