当前位置: 首页 > news >正文

免费源码资源/北京seo执行

免费源码资源,北京seo执行,如何起手做网站项目,泉州做网站优化的公司在iOS开发中,经常用到宏定义,或用const修饰一些数据类型,经常有开发者不知怎么正确使用,导致项目中乱用宏与const修饰你能区分下面的吗?知道什么时候用吗?#define HSCoder "汉斯哈哈哈"NSString …

在iOS开发中,经常用到宏定义,或用const修饰一些数据类型,经常有开发者不知怎么正确使用,导致项目中乱用宏与const修饰

你能区分下面的吗?知道什么时候用吗?

#define HSCoder @"汉斯哈哈哈"

NSString *HSCoder = @"汉斯哈哈哈";

extern NSString *HSCoder;

extern const NSString *HSCoder;

static const NSString *HSCoder = @"汉斯哈哈哈";

const NSString *HSCoder = @"汉斯哈哈哈";

NSString const *HSCoder = @"汉斯哈哈哈";

NSString * const HSCoder = @"汉斯哈哈哈";

当我们想全局共用一些数据时,可以用宏、变量、常量

宏:

#define HSCoder @"汉斯哈哈哈"

变量:

NSString *HSCoder = @"汉斯哈哈哈";

常量:

四种写法:

static const NSString *HSCoder = @"汉斯哈哈哈";

const NSString *HSCoder = @"汉斯哈哈哈";

NSString const *HSCoder = @"汉斯哈哈哈";

NSString * const HSCoder = @"汉斯哈哈哈";

思考:宏与常/变量的选择?

宏:只是在预处理器里进行文本替换,没有类型,不做任何类型检查,编译器可以对相同的字符串进行优化。只保存一份到 .rodata 段。甚至有相同后缀的字符串也可以优化,你可以用GCC 编译测试,"Hello world" 与 "world" 两个字符串,只存储前面一个。取的时候只需要给前面和中间的地址,如果是整形、浮点型会有多份拷贝,但这些数写在指令中。占的只是代码段而已,大量用宏会导致二进制文件变大

变量:共享一块内存空间,就算项目中N处用到,也不会分配N块内存空间,可以被修改,在编译阶段会执行类型检查

常量:共享一块内存空间,就算项目中N处用到,也不会分配N块内存空间,可以根据const修饰的位置设定能否修改,在编译阶段会执行类型检查

尽量使用const,看苹果api使用常量多点,如下图:

f83335e036b5

这里写图片描述

常量区分

全局常量:不管你定义在任何文件夹,外部都能访问

const NSString *HSCoder = @"汉斯哈哈哈";

例如:

在ViewController定义一个 HSCoder 字符串全局常量:

f83335e036b5

这里写图片描述

在AppDelegate中访问:

f83335e036b5

这里写图片描述

局部常量:用static修饰后,不能提供外界访问

static const NSString *HSCoder = @"汉斯哈哈哈";

例如:

在ViewController定义一个 HSCoder 字符串局部常量:

f83335e036b5

这里写图片描述

编译时报错:

f83335e036b5

这里写图片描述

const修饰位置不同,代表什么?

1.const NSString *HSCoder = @"汉斯哈哈哈";

2.NSString const *HSCoder = @"汉斯哈哈哈";

3.NSString * const HSCoder = @"汉斯哈哈哈";

1.const NSString *HSCoder = @"汉斯哈哈哈";

"*HSCoder"不能被修改, "HSCoder"能被修改

2.NSString const *HSCoder = @"汉斯哈哈哈";

"*HSCoder"不能被修改, "HSCoder"能被修改

3.NSString * const HSCoder = @"汉斯哈哈哈";

"HSCoder"不能被修改,"*HSCoder"能被修改

注意:1和2其实没什么区别

结论:const右边的总不能被修改

验证:

const int *p;

f83335e036b5

这里写图片描述

int const *p;

f83335e036b5

这里写图片描述

int * const p;

f83335e036b5

这里写图片描述

所以一般我们定义一个常量又不想被修改应该这样:

NSString * const HSCoder = @"汉斯哈哈哈";

测试:

在ViewController定义一个常量HSCoder:

f83335e036b5

这里写图片描述

在AppDelegate修改常量HSCoder,看下面报错提示:

f83335e036b5

这里写图片描述

一般项目中,定义全局常量,会写在独立文件里

HSConst.m 定义常量:

f83335e036b5

这里写图片描述

HSConst.h 提供外接访问常量:

f83335e036b5

这里写图片描述

在AppDelegate中访问:

f83335e036b5

这里写图片描述

文章同步到微信公众号:hans_iOS 有疑问可以在公众号里直接发

http://www.jmfq.cn/news/5016349.html

相关文章:

  • 网站默认模板/线上营销课程
  • 戒赌网站怎么做/seo搜索引擎优化推广
  • 学校网站建设与管理办法/磁力搜索器
  • 有没有免费注册域名的网站/网络舆情分析师
  • 哈尔滨建站优化定制/如何优化培训体系
  • 有什的自学做网站/杭州seo搜索引擎优化
  • 应该选用优质的个人护理/沈阳网站推广优化
  • 怎样可以查到做网站公司/最新域名ip地址
  • 湖南省郴州市邮编/长沙好的seo外包公司
  • 做网站多少钱一张页面/网站提交收录入口
  • 中国建设银行网站宁波网点/常见的营销策略有哪些
  • wordpress 连接丢失/seo软件哪个好
  • 重庆网站推广外包企业/公司官网模板
  • 广州门户网站建设方案/网站运营需要多少钱
  • 上海闵行区今日疫情/seo搜索引擎的优化
  • 网站开发专业术语/重庆百度竞价推广
  • 如何制作网站视频的软件/谷歌ads
  • 中国人做的比较好的shopify网站/种子搜索引擎在线
  • 网站系统建站/百度广告代理商加盟
  • 注册网站免费/注册google账号
  • 官方网站侵权/免费的网站域名查询565wcc
  • 手机网站 备案/指数基金定投怎么买
  • 个人计算机做服务器建网站/apple日本网站
  • 江苏省网站备案注销/优化设计电子课本下载
  • 制作个人网页教程/seo实战培训
  • 云酒店网站建设/软文模板
  • 什么是网站单页/百度资讯指数
  • 零基础学ui设计好学吗/seo关键词怎么填
  • 娱乐网站建设公司/网络营销推广策划方案
  • 淘宝网站建设与规划/seo技术顾问阿亮