首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Objective-C中的常量

常量是指在程序运行过程中不可更改的值。在Objective-C中,可以使用const关键字来定义常量。常量的定义方式如下:

代码语言:objective-c
复制
const 数据类型 常量名 = 常量值;

例如,定义一个整型常量:

代码语言:objective-c
复制
const int MAX_VALUE = 100;

在Objective-C中,常量的值不能在程序运行过程中更改,但是如果常量指向一个可变对象,那么可以修改该对象的内容。例如:

代码语言:objective-c
复制
const NSMutableArray *array = [NSMutableArray arrayWithObjects:@"A", @"B", @"C", nil];
[array addObject:@"D"];

虽然常量指向的对象不能更改,但是该对象的内容可以更改。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

go常量无类型常量

Go语言常量有个不同寻常之处。虽然一个常量可以有任意一个确定基础类型,例如int或float64,或者是类似time.Duration这样命名基础类型,但是许多常量并没有一个明确基础类型。...,当赋值给特定类型时精度会有影响 只有常量可以是无类型。...当一个无类型常量被赋值给一个变量时候,或者出现在有明确类型变量声明右边,无类型常量将会被隐式转换为对应类型 对于常量面值,不同写法可能会对应不同类型。...例如0、0.0、0i和\u0000虽然有着相同常量值,但是它们分别对应无类型整数、无类型浮点数、无类型复数和无类型字符等不同常量类型。...同样,true和false也是无类型布尔类型,字符串面值常量是无类型字符串类型。

1.5K20

PHP预定义常量和魔术常量

魔术常量(8个) 1、__LINE__ 返回文件的当前行号。 2、__FILE__ 返回文件完整路径和文件名。如果用在包含文件,则返回包含文件名。...除非是根目录,否则目录名不包括末尾斜杠。(PHP 5.3.0新增) 4、__FUNCTION__ 返回函数名称(PHP 4.3.0 新加)。...自 PHP 5 起本常量返回该函数被定义时名字(区分大小写)。在 PHP 4 该值总是小写字母。 5、__CLASS__ 返回类名称(PHP 4.3.0 新加)。...自 PHP 5 起本常量返回该类被定义时名字(区分大小写)。在 PHP 4 该值总是小写字母。 6、__TRAIT__ Trait 名字(PHP 5.4.0 新加)。...此常量是在编译时定义(PHP 5.3.0 新增) 预定义常量 PHP_VERSION PHP 程序版本,如4.0.2 PHP_OS

4.3K30

Objective-C集合类

下面详细介绍Objective-C集合类以及每个集合类用法,学过其他面向对象编程语言小伙伴们看到OC集合类会有种莫名亲切感,理解起来问题不大,可以类比Java集合类去学习...在Objective-C集合类主要包括不可变数组--NSArray,  可变数组--NSMutableArray,   不可变字典--NSDictionary,    可变字典--NSMutableDictionary...一、数组         1.不可变数组  NSArray             数组是有序对象集合,用来存储对象有序列表,在OC数组必须存是对象,不能是基本数据类型,若想存入基本数据类型...NSArray也是OC一个对象,使用NSArray也需要进行实例化,前面的博客在类初始化中提到了便利初始化函数和便利构造器,在NSArray也少不了这两样东西我们可以通过NSArray便利初始化函数或者便利构造器进行...OC集合类是不能放基本数据类型,那么我们如何把基本数据类型封装成对象呢?

1.1K70

Objective-C内存管理

OC中使用引用计数和垃圾回收来管理内存,在OC为每个对象分配一个引用计数器,当对象刚刚被创建时其初始值为1,当有某段代码需要访问一个对象是时,会将该对象引用计数器加1(通过retain来实现);当访问一个对象结束时...等方法,需要在XCode中进行设置,设置如下: 把Objective-C Automatic Reference Counting 改为NO,即可。     ​    ​...(3).在可变数组移除一个str,观察retainCount变化     ​    ​    ​(4)我们为什么要用可变字符串呢?稍后会提到为什么。...= 1;   NSLog(@"新建str时 strRetain = %d",(int)[str retainCount]);       //把可变字符串对象传入到可变数组 NSMutalberetain...RetainCount = 3     ​Objective-C得ARC(Automatic Reference Counting)     ​    1.​ARC应注意问题:     ​    ​    ​

77290

java常量有哪些_Java常量有哪些?

在Java常量包括整型常量、浮点数常量、布尔常量、字符常量等。 下面我们就一起来看看java这些常量。...需要注意是,在程序为了标明不同进制,数据都有特定标识,八进制必须以0开头,如0711,0123;十六进制必须以0x或0X开头,如0xaf3、0Xff;整数以十进制表示时,第一位不能是0,0本身除外...之所以能这样表示,是因为Java采用是Unicode字符集,Unicode字符以u开头,空白字符在Unicode码表对应值为’u0000’。...5、布尔常量 布尔常量即布尔型两个值true和false,该常量用于区分一个事物真与假。 6、null常量 null常量只有一个值null,表示对象引用为空。...以上就是动力节点java学院小编针对“Java常量有哪些?”

4.3K30

Objective-C语法糖

当时把注意力放在了深浅拷贝内存地址分析上了,就没太在意,测试做完啦,在回顾时候发现数组是用下标的方式获取! 于是就有了个疑问,在OC这样写也行?...为了更好偷懒,于是去百度上Google啦一下这是‘ Xcode 4.4LLVM compiler 4.0’ 引入新特性(2012年WWDC发布东西)。...到这小菜本人就有柳暗花明又一村感觉啦~就可以好好偷一下懒啦~于是系统总结了一下引入特性,话不多说,Coder说话哪能少了code呢!...    在之前博客我是这样初始化NSArray: 1 //NSArray便利初始化 2 NSArray *array1 = [[NSArray alloc] initWithObjects:@...    也引用我之前博客得一段代码吧 //不可变字典初始化 NSDictionary *dictionay = [NSDictionary dictionaryWithObjectsAndKeys

97750

CC++define定义常量与const常量

常量是在程序不能更改量,在C/C++中有两种方式定义常量,一种是利用define宏定义方式,一种是C++中新提出来const型常变量,下面主要讨论它们之间相关问题; define定义常量:...指令,在处理时首先将所需包含头文件整个拷贝到这个.cpp文件,并替换这个#include指令,然后再编译生成文件,这个中间文件在Windows后缀为.i,在Visual C++ 6.0以此点击...,入栈参数是10,根本没有取nNum值得相关操作,在利用const定义常量时,编译器认为既然这是一个常量,应该不会修改,为了提升效率,在使用时并不会去对应内存寻址,而是直接将它替换为初始化时值...2)define定义常量编译器不会进行任何检查,const定义常量编译器会进行类型检查,相对来说比define更安全 3)define宏在使用时是替换不占内存,而const则是一个变量,占内存空间...4)define定义宏在代码段不可寻址,const定义常量是可以寻址,在数据段或者栈段

1.7K10

Objective-CNSArray类解读

Objective-CNSArray类解读     NSArray数组类是Objective-C语言中常用也是重要一个类,除了开发中常用到一些基础功能,NSArray及其相关类还封装了许多更加强大功能...NSArray属性与方法: //获取数组中元素个数 @property (readonly) NSUInteger count; //通过下标获数组元素 - (ObjectType)objectAtIndex...; //像数组追加一个元素 这个方法会返回一个新数组 - (NSArray *)arrayByAddingObject:(ObjectType)anObject; //像数组追加一组元素...)range; //获取某个元素在数值下标值 - (NSUInteger)indexOfObject:(ObjectType)anObject; //获取某个范围内元素下标值 - (NSUInteger...:(ObjectType)anObject; //在一定范围内 获取与给定元素相同元素在数组最小下标值 - (NSUInteger)indexOfObjectIdenticalTo:(ObjectType

1.2K20

Objective-Cruntime机制应用

Objective-Cruntime机制应用 一、初识runtime         Objective-C是一种动态语言,所谓动态语言,是在程序执行时动态的确定变量类型,执行变量类型对应方法...,首先,在头文件没有提供任何方法接口,我们没有办法使用点语法做任何操作,privateOne和PrivateTow两个变量虽然声明在了头文件,却是私有类型,通过指针方式我们虽然可以看到他们,却不能做任何读取修改操作...,xcode提示如下: ?...,你或许会遇到一个问题,ARC下,编译器不允许你将int类型值赋值给id,在buildset中将Objective-C Automatic Reference Counting修改为No即可。...六、动态为类添加方法         这个runtime机制最强大部分要到了,试想,如果我们可以动态向类添加方法,那将是一件多么令人激动事情,注意,这里是动态添加,和类别的最大不同在于这种方式是运行时才决定是否添加方法

39350

Objective-C继承和多态

Objective-Csuper是指向直接父类指针,而self是指向本身指针,self就相当于javathis指针。...在OC写类时可以在@implementation定义哪些在@interface无相应声明方法,但这个方法是私有的,仅在类实现中使用。         ...在Objectiv-C几乎所有的类都是继承自NSObject类,NSObject类存在大量功能强大方法。下面对NSObject类各种方法进行试验和介绍:         1....= str1"); }     ​    ​Objective-C继承         继承是is-a关系,比如猫咪是一个动物,那么动物是父类,而猫咪是动物子类。...2014-07-30 08:38:12.958 HelloOC[483:303] 我是富二代BILL`s son,我超喜欢飙车 ​Objective-C多态     ​    ​多态简单说就是对于不同对象响应同一个方法时做出不同反应

1.2K80

Objective-CBlock(闭包)

学习OCblock之前也小担心一下,Block在OC属于高级部分,心里有又有个疑问:学起来难不难?...看过Block部分,感觉Block挺好理解,用起来也挺顺手,Block没我想象那么难理解。         废话少说,学习一门新编程语言是少不了代码量支持,所以代码是少不了。...下面就通代码来认识一下OCblock使用。   ...,然后在调用代码块时候修改两个局部变量值,然后再代码块显示变量值。         ...2.成员变量在block使用     ​    ​成员变量在block使用是加上self->a使用,所以在声明成员变量时候加不加__block,在成员函数代码块中都可以访问修改;     ​    ​

1.4K90

构造Python常量

构建常量 Python不存在像const那样常量关键字,只是在内建空间中提供了一小部分常量,比如True、False、None等。那么在Python如何使用常量呢?...一般来说有如下两种方法: 通过命名风格来提示使用者该变量代表意义为常量,比如MAX_NUMBER、TOTAL。...然而这种方式并没有真正实现常量,其对应值仍然可以被改变,这只是一种约定俗成风格。 通过自定义类实现常量功能。这要求符合“命名全部为大写”和“值一旦被绑定便不可再修改”这两个条件。...__dict__[name] = value import sys sys.modules[__name__] = _const() 如果上面的代码对应模块名为const,使用时候只要import...---- 将常量集中到一个文件 无论采用那种方式实现常量,都建议将常量集中到一个文件,因为这样有利于维护,一旦修改常量值,可以集中统一进行而不是逐个进行检查。

3.2K20

Objective-C类目,延展,协议

Objective-C类目(Category),延展(Extension),协议(Protocol)这些名词看起来挺牛,瞬间感觉OC好高大上。...一.Objective-C类目(Category)         在Objective-C比其他OOP编程语言多了个类目,在OC除了用继承来扩充类功能函数外我们还可以用类目来实现。...二.Objective-C延展(Extension)         简单说匿名类目就是延展,在延展定义方法是类私有的方法只能在类内部调用,定义延展方式就是把类目中括号得名字省略掉,括号保留这就是延展...其实在延展定义方法不是真正私有方法和C++, Java得方法还有所区别,在类初始化文件引入相应延展头文件,其延展对应方法也是可以访问。...这种方法不能实现真正方法私有,当在别的文件引入延展头文件,那么在这个文件定义对象就可以直接调用在延展定义所谓私有的方法。

99880

Java常量池【Class常量池、运行时常量池、字符串常量池】

运行时常量池存在于内存,是方法区一部分。它是Class常量池被加载到内存之后版本。...运行时常量池除了保存Class文件描述符号引用外,还会把由符号引用翻译出来直接引用也存储在运行时常量池中。...字符串常量池 字符串常量池在Java内存区域哪个位置? 在JDK6.0及之前版本,字符串常量池是放在Perm Gen区(也就是方法区); 在JDK7.0版本,字符串常量被移到了堆。...在之前版本,里放都是字符串常量,由于发生了改变,因此也可以存放放置在堆内字符串对象引用。...在JDK1.7字符串常量池和静态变量被从方法区拿到了堆,运行时常量池剩下还在方法区,也就是HotSpot永久代

1.4K20
领券