objcetive-c学习笔记之 字符串
2015-07-17 23:11
253 查看
· 字符串声明,以下三种方法:
NSString *a0 = [[NSString alloc]initWithFormat:@"kevin"]; //方法一
NSString *a1 = [[NSString alloc]initWithString:@"kevin"]; //方法二
NSString *a2 = @"kevin"; //方法三
NSString *a3 = [[NSString alloc]initWithFormat:@"kevin"];
区别1:方法一用Format进行字符串的声明,方法二用String方法声明,第三种方法和用String声明基本一致,但是不初始化内存空间,方法一和方法二中,a0和a1使用结束后,需要进行内存释放,但是a2不需要进行内存释放。
区别2:用Format初始化的字符串,需要初始化一段动态内存空间,如:0x6a42a40,而用String声明的字符串,初始化的是常量内存区,如:0x46a8,常量内存区的地址,只要值相同,占用的地址空间是一致的。所以a1和a2的地址一致,但是a0和a3的地址不一致。
NSString *a0 = [[NSString alloc]initWithFormat:@"kevin"]; //方法一
NSString *a1 = [[NSString alloc]initWithString:@"kevin"]; //方法二
NSString *a2 = @"kevin"; //方法三
NSString *a3 = [[NSString alloc]initWithFormat:@"kevin"];
区别1:方法一用Format进行字符串的声明,方法二用String方法声明,第三种方法和用String声明基本一致,但是不初始化内存空间,方法一和方法二中,a0和a1使用结束后,需要进行内存释放,但是a2不需要进行内存释放。
区别2:用Format初始化的字符串,需要初始化一段动态内存空间,如:0x6a42a40,而用String声明的字符串,初始化的是常量内存区,如:0x46a8,常量内存区的地址,只要值相同,占用的地址空间是一致的。所以a1和a2的地址一致,但是a0和a3的地址不一致。
相关文章推荐
- Java 异常分类
- struts2核心(3)——访问ValueStack
- 2015071703 - 人生的主旋律
- 从request获取工程各种路径总结
- Android开发UI之Notification
- Linux下解压rar文件
- 现代的代码审查实践对软件质量影响的实证研究
- iOS平台游戏安全之IPA破解原理及防御(第三弹)
- Discuz帖子列表页无法ajax加载下一页问题
- 初学Python-OOP
- JAVA socket通信实例
- String,StringBuffer与StringBuilder的区别详解
- 2015071702 - 职场如战场
- RT thread 设备驱动组件之USART设备
- iOS开发——UI基础-按钮内边距,图片拉伸
- <linux是怎么跑的?>傻瓜视角看linux引导启动过程
- 择善JAVA学习String和StringBuffer
- 切图的一些笔记
- C#参数类型 params、out和ref
- dom树的介绍,及原理分析