OC 之 const
1. 修饰变量
一般设置传参数的时候 若设置为const, 则在调用过程中不允许修改参数值;(readonly)
// *前const: 不能通过指针, 改变p指向的值
const int *p = &age;
// 错误写法
*p = num; // *后const: 指针不能指向其他变量
int * const q = #
// 错误写法
q = &age;
2. 用在iOS项目中, 修饰通知
宏(#define)在编译过程中完成代码替换(项目中调用几次, 编译的时候宏定义就会出现几次);
const(全局常量)在编译中调用的是同一个内存的同一个常量;
[注意]: 在.pch文件中如果用const定义常量, 则会报链接错误(link command error), 因为编译时相当于, 每个调用了该变量的文件中都会编译一次, 所以报multi_define错误; 需要借助extern关键字来引用.
static: (静态变量)存储在静态存储区, 只有当前类能够访问;
.h文件
/**
* 点击表情键盘中的表情按钮通知
*/
extern NSString *const PPEmotionBtnDidSelectedNoticefication;
extern NSString *const PPEmotionBtnDidSelectedKey; /**
* 删除按钮通知
*/
extern NSString *const PPEmotionCancelBtnDidSelectedNoticefication;
extern NSString *const PPEmotionCancelBtnDidSelectedKey; .m文件 #import <Foundation/Foundation.h>
NSString *const PPEmotionBtnDidSelectedNoticefication = @"PPEmotionBtnDidSelectedNoticefication";
NSString *const PPEmotionBtnDidSelectedKey = @"PPEmotionBtnDidSelectedKey"; NSString *const PPEmotionCancelBtnDidSelectedNoticefication = @"PPEmotionCancelBtnDidSelectedNoticefication";
NSString *const PPEmotionCancelBtnDidSelectedKey = @"PPEmotionCancelBtnDidSelectedKey";
OC 之 const的更多相关文章
- C 和 OC 字符串转换 NSString 和 char * 转换 const char* 与 char *
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { char *s = "He ...
- OC字符串与C语言字符串之间的相互转换
1.C转OC字符串 const char *cString = "This is a C string"; // 动态方法 NSString *ocString1 = [[NSSt ...
- 14.Object-C--浅谈Foundation框架字符串NSString 与NSMutableString
OC的字符串时经常使用到的,今天我对于OC字符串做一个简单的总结,如果有错误之处,麻烦留言指正.感谢! NSString是一个不可变长度的字符串对象.表示它初始化以后,你不能改变该变量所分配的内存中的 ...
- ffmpeg API录制rtsp视频流
原文出自http://blog.csdn.net/zxwangyun/article/details/8190638#reply 作者 Sloan 这里在录制时,并没有进行转码,只是相当于把rts ...
- C++全总结
// CPPTEST.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include & ...
- IOS开发学习笔记016-Foundation框架
Foundation 框架的学习 一.Foundation 常用结构体 1.NSRange(location,length) typedef struct _NSRange { NSUIntege ...
- openssl 1.1.1 reference
openssl 1.1.1 include/openssl aes.h: # define HEADER_AES_H aes.h: # define AES_ENCRYPT 1 aes.h: # de ...
- OC中修饰符:宏define 常量:const extern
const const最好理解,修饰的东西不能被修改 指针类型根据位置的不同可以理解成3种情况: I 常量指针 // 初始化之后不能赋值,指向的对象可以是任意对象,对象可变. NSString * c ...
- oc温习八:static、extern、const 的了解
参考文章:http://www.cocoachina.com/ios/20161110/18035.html 1.const 这个单词翻译成中文是“常量”的意思.在程序中我们知道“常量”的值是不能变的 ...
随机推荐
- _blank开新窗体不符合标准?
我们要在新窗体中打开链接通常的做法是在链接后面加target="_blank",我们採用过渡型的DOCTYPE(xh tml1-transitional. dtd)时没有问题,可是 ...
- java07 map
map底层,数组加链表 集合: 是一个对象,只不过这个对象可以容纳别的对象.存放对象就是操作地址. List:是有序可重复的. Set:无顺序,不可重复,有重复则后面把前面的覆盖. Map:键值对. ...
- Unicode编码及其实现:UTF-16、UTF-8,and more
http://blog.csdn.net/thl789/article/details/7506133
- Android 接收短信
启动程序时启动一个service,在service里注册接收短信的广播,当手机收到短信里,打印出短信内容跟电话号码. package com.lmy.SmsListener; import andro ...
- Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(一)
Spring更新到3.0之后,其MVC框架加入了一个非常不错的东西——那就是REST.它的开放式特性,与Spring的无缝集成,以及Spring框架的优秀表现,使得现在很多公司将其作为新的系统开发框架 ...
- Java 链式编程
这里来做一个Java 链式编程的例子,基本就是每次返回一个对象本身,这样就能够去调用对象的方法和属性. package com.sun; public class Demo05 { /** * @pa ...
- PV 并发量的计算
http://blog.csdn.net/xingxing513234072/article/details/17336573 PV与并发之间换算的算法换算公式 并发连接数 = PV / 统计时间 * ...
- RazorEngine在非MVC下的使用,以及使用自定义模板
---恢复内容开始--- RazorEngine模板引擎大大的帮助了我们简化字符串的拼接与方法的调用,开源之后,现在在简单的web程序,winform程序,甚至控制台程序都可以利用它来完成. 但如何在 ...
- 首页的sitecontent地址
当无法出现工具栏时,利用url地址,可以方便直接进入sitecontent http://sp2013/sites/bentest/_layouts/15/viewlsts.aspx
- 对比iOS中的四种数据存储
来自于大牛的文章给大家分享下 :http://www.infoq.com/cn/articles/data-storage-in-ios/