iOS 里const在修饰对象时候的用法
玩iOS的小伙伴对const应该很不陌生, 在声明全局常量的时候很多时候都会用到,
但是有时候修饰对象很迷惑下面是个人总结, 下面的地址都是模拟的
1.
const NSString *str1 = @"123"; str1 = @"ads";
/*-- 对象地址 -- 对象 -- 指向的地址 ---- 值 ------ 值地址 --- | 0x123456 str1 0x654321 || 123 ---- 0x654321 | // const 修饰的是 *str, 而*str 是值, 所以const 修饰的就是值123 | str1 0x654221 || ads ---- 0x654221 | // 因为const 修饰的是值 所以 指针str 还是可变的(可以指向其他值) */
2.
NSString const *str2 = @"456"; str2 = @"zxc";
/*-- 对象地址 -- 对象 -- 指向的地址 ---- 值 ------ 值地址 --- | 0x123464 str2 0x654311 || 456 ---- 0x654311 | // 与上面同理 | str2 0x654211 || zxc ---- 0x654211 | */
3.
NSString* const str3 = @"789"; str3 = @"qwe"; // 报错
/*-- 对象地址 -- 对象 -- 指向的地址 ---- 值 ------ 值地址 --- | 0x123478 str3 0x654301 || 789 ---- 0x654301 | // const 修饰的是 str3, 而str3 是指针(指向的是值的地址), | || | 所以const 修饰的就是值789 的地址值 | 0x123478 str3 0x654301 || qwe ---- 0x654201 | // 因为const 修饰的是指针(指向的是值的地址) | || | 所以 指针str3 是不可变的(不可以指向其他地址) */
转载于:https://www.cnblogs.com/MrTao/p/8609621.html
iOS 里const在修饰对象时候的用法相关推荐
- const与修饰函数形参
C++中,const与&修饰函数形参的可能情况有四种:C语言中,情况只有1)和3)两种. 1) string str 这是最普通的传值调用,首先对原str进行一次拷贝,会调用拷贝构造函数.st ...
- assign 可以修饰对象吗
assign 可以修饰对象的,由于assign 修饰的对象不是强引用,在调用的时候会操作对象已经释放,也就是野指针,但是assign修饰的对象的属性当对象释放属性不会被设置为nil,如果是strong ...
- 成员函数的const究竟修饰的是谁
demo <pre name="code" class="cpp">class Test { public:const void OpVar(int ...
- 如何在Chrome调试器里检查嵌套Observable对象
一个例子: 举个例子,看如下这个嵌套的Observable对象: items$: Observable<Observable<Product>[]> = this.compon ...
- input在iOS里的兼容性
input框在iOS里,无法聚焦,不能输入内容,把-webkit-user-select:none改成-webkit-user-select:auto;或者直接加一个style="-webk ...
- #小程序# 如何解决video视频在ios里出现黑屏?
1.遇到的bug: 小程序里面的视频,在安卓手机里面可以正常播放及显示,在ios里就是黑屏显示 <以下为ios里> 2.解决办法: 首先可以看下后端给的视频, 里面有没有存在中文,如果存在 ...
- Java中Final修饰对象
Final修饰对象 众所周知,final是java的关键字,修饰符,用于声明属性(属性不可变).方法(方法不可重写)和类(类不可继承),那么final可以修饰对象么,修饰对象又是代表着什么? 先看一个 ...
- 对Spring Data JPA中的page对象下的content属性里的实体类对象转换为dto对象
对Spring Data JPA中的page对象下的content属性里的实体类对象转换为dto对象. 刚开始试遍历content,进行转换,添加到新的list中,再set进去page.后来发现pag ...
- 3.js中判断数组中是否存在某个对象/值,判断数组里的对象是否存在某个值 的五种方法 及应用场景|判断数组里有没有某对象,有不添加,没有则添加到数组
3.js中判断数组中是否存在某个对象/值,判断数组里的对象是否存在某个值 的五种方法 及应用场景 一.当数组中的数据是简单类型时: 应用js中的indexof方法:存在则返回当前项索引,不存在则返回 ...
最新文章
- 【Java】时间复杂度 与 空间复杂度
- Spring 极速集成注解 Redis 实践
- chrome面板介绍
- Linux 动态库和静态库
- 【我的物联网成长记3】如何开发物联网应用?
- java+getactionmap_Struts2 使用OGNL遍历map方法详解
- 5分绩点转4分_U19男篮世界杯 | 郭昊文空砍23分4篮板5助攻 国青72-86负菲律宾
- It企业的上市与退市
- 数据结构与算法——广度搜索BFS
- 关于使用 autoFac 的注入方法
- linux 命令行 光标移动技巧
- Ubuntu18.04安装Oracle11g
- 在linux系统下忘记了root密码,教你在Linux系统中解决忘记root口令密码的方法
- 科普:什么是CPU?CPU和芯片关系?CPU怎么做的?CPU有什么用?不同CPU有什么区别?我们怎么选CPU?(待补充完整)
- VS快捷键大全(包含记忆的口诀和演示)
- 如何 repack 一个RPM包
- php函数名命名规范,PHP语言的命名规则
- 《Deep Modular Co-Attention Networks for Visual Question Answering》论文翻译
- 阿里巴巴2015校招笔试题附加题1解答
- 用arduino IDE开发esp8266 wifi
热门文章
- HTML代码转换编辑器
- Exynos4412 文件系统制作(二)—— 文件系统简介
- Python的threading多线程
- gcc compiler warning: “will be initialized after/when initialized here”
- [html] 怎么去除img之间存在的间隔缝隙?
- PS教程第一课:PS简介
- 工作378-封装axios方法
- [css] 手写一个满屏品字布局的方案
- [css]怎么改变选中文本的文字颜色和背景色?
- [css] 过渡和动画的区别是什么?