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 这个单词翻译成中文是“常量”的意思.在程序中我们知道“常量”的值是不能变的 ...
随机推荐
- javascript默认中文(汉字/标点)长度均为1的解决
javascript默认中文(汉字/标点)长度均为1 与后台(java)不一致, function calculate(str) { //var str="你好,哈哈哈000111lll&q ...
- 【Heritrix基础教程之1】在Eclipse中配置Heritrix
一.新建项目并将Heritrix源代码导入 1.下载heritrix-1.14.4-src.zip和heritrix-1.14.4.zip两个压缩包,并解压,以后分别简称SRC包和ZIP包: 2.在E ...
- ODB 下载与安装 (Linux)
http://www.codesynthesis.com/products/odb/download.xhtml Installing ODB on UNIX Introduction This gu ...
- linux 定时任务计划
crond: unrecognized service 无crond解决办法 安装计划任务:yum -y install vixie-cron
- 一款很不错的FLASH时种插件
直接贴一段代码上来,大家看看效果: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...
- iOS多线程开发--NSThread NSOperation GCD
多线程 当用户播放音频.下载资源.进行图像处理时往往希望做这些事情的时候其他操作不会被中 断或者希望这些操作过程中更加顺畅.在单线程中一个线程只能做一件事情,一件事情处理不完另一件事就不能开始,这样势 ...
- mvn export runnable jar
mvn dependency:copy-dependencies <build> <plugins> <plugin> <groupId>org.apa ...
- 达夫设备/达夫算法(Duff's Device)
主要是下面的代码: register n = (count + 7) / 8; /\* count > 0 assumed \*/ switch (count % 8) { case 0: ...
- 20160417javaweb之servlet监听器
监听器:监听器就是一个java程序,功能是监听另一个java对象变化(方法调用.属性变更) 8个监听器,分为了3种 写一个类实现响应的接口 注册监听器 -- 在web.xml中注册监听器 1.用来监听 ...
- (一)初识Android
第一节:手机操作系统简介 目前的主流智能操作系统有:Android , IOS , windows mobile ; Android 开源,属于谷歌公司,市场份额较大,前景广阔: IOS 属于苹果公司 ...