关于NSString和NSMutableString的retainCount
1. 字符串常量
NSString *s = @"test";
NSLog(@"s:%lx",[s retainCount]); //ffffffffffffffff(即UINT_MAX ( Maximum value an `unsigned int'))
因为"test"为字符串常量,系统不会收回,也不会对其作引用计数,即使我们对s如何retain或release。
2. stringWithFormat
NSString *s = [NSString stringWithFormat:@"%s", "test"];
NSLog(@"s:%d",[s retainCount]); // 1
使用stringWithFormat创建的NSString为变量,系统会进行引用计数。
2. stringWithString
stringWithString这个方法比较特别:它的retainCount取决于它后面跟的string对象
NSString *s1 = [NSString stringWithString:@"test"];
NSString *s2 = [NSString stringWithString:[NSString stringWithFormat:@"test,%d",1]];
NSLog(@"s1:%d",[s1 retainCount]); // 2147483647
NSLog(@"s2:%d",[s2 retainCount]); // 2
可以看到第一个为"常量"对象,其retainCount方法的实现返回的是maxIntValue。
第二个为2,这里也很好理解,也证明了前面说的,这个方法生成的只是一个对另一个对象的引用。一个对象实例,两次的stringWithString,它的retainCount为2,同时都被当前的AutoreleasePool管理。
NSMutableString* myStr3 = [NSMutableString stringWithString:@"string 3"];
输出1,有引用计数
关于NSString和NSMutableString的retainCount相关推荐
- IOS学习笔记十六(NSString和NSMutableString)
1.NSString和NSMutableString NSString是不变字符串类,有点像java里面的String,NSMutableString是可变字符串类,有点类似java里面的String ...
- OC本学习笔记Foundation框架NSString与NSMutableString
一.NSString与NSMutableString 相信大家对NSString类都不陌生.它是OC中提供的字符串类.它的对象中的字符串都是不可变的,而它的子类NSMutableS ...
- NSString、NSMutableString基本用法
NSString.NSMutableString基本用法 NSString其实是一个对象类型.NSString是NSObject(Cocoa Foundation的基础对象)的子类 一.NSStrin ...
- NSString 和 NSMutableString
// // main.m // 字符串(NSString&NSMutableString) // // Created by 闫合 on 16/5/19. // Copyright © ...
- 《Objective-c》Foundation框架 -(字符串:NSString和NSMutableString)
一.NSString(不可变字符串) 1.创建字符串的方式:(利用对象方法) 方式一:最快速的创建 方式二: 方式三: 方式四: 方式五:NSUTF8StringEncoding 用到中文就可以用这种 ...
- NSString ,NSMutableString用法以及一些常用方法
2019独角兽企业重金招聘Python工程师标准>>> 1.NSString的用法 //1.创建常量字符串.NSString *string1 = @"这是一个NSStri ...
- 关于NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary
NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary 在 OC 中我们天天都要用,而我们要怎 ...
- NSString / NSMutableString 字符串处理,常用代码 (实例)
Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重 ...
- IPHONE 开发 7 -- Object C 02 字符串NSString 与 char* ,字符串的遍历,字符串的比较,截取与大小写改变,搜索字符串与替换字符串...
Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重 ...
最新文章
- 让炼丹更玄学!苏大博士生用「天干地支」生成随机种子,项目已开源
- ffmpeg的中文学习文档
- 高性能网站建设的14个原则(转载)
- STL - 底层实现
- 解决Mysql5.7以上版本, 使用group by抛出Expression #1 of SELECT list is not in GROUP BY clause and contains no异常
- 我国博士生延期毕业率高达68.3%,导致博士延期原来是这10个原因
- 关于TikTok的变现思考和三种玩法
- 2018ACM-ICPC南京赛区网络赛: J. Sum(积性函数前缀和)
- Xcode无法识别真机
- 分布式存储系统学习笔记(一)—什么是分布式系统(4)—容错机制
- 计算机视觉论文-2021-09-07
- 机器人学中一些常用的三角函数公式
- 0723数组复习 堆区 动态数组
- 游戏策划试题(1)——摘自牛客网
- 杰理之AD140 开发板芯片没 trim 过【篇】
- VUE2安装初始化步骤(2022)
- 利用Python爬取《囧妈》豆瓣短评数据,并进行snownlp情感分析
- SAP通过转义字符新增ICON图标
- 【因果推断与机器学习】Causal Inference: Chapter_2
- 【深度学习】机器学习\深度学习常见相关公开数据集汇总(图像处理相关数据集、自然语言处理相关数据集、语音处理相关数据集)
热门文章
- mysql 创建数据库文件_mysql学习之通过文件创建数据库以及添加数据
- python画精美图案_Python语言的魅力------完美图案
- 什么叫大地高_什么才叫睡得好?睡觉能满足这5个标准,说明睡眠质量高
- linux内核 默认路由表,Linux 默认路由表 0.0.0.0
- bootstrap下拉框分页_【Bootstrap】 bootstrap-select2下拉菜单插件
- 计算机基础知识二进制转换,计算机基础知识数制转换
- 雷军:我40岁一事无成
- 为什么会用这个工具的产品经理,越来越值钱?
- java signal handler_JAVA优雅停机的实现
- java oauth2登录以及权限_还得看 Java!Gitee 4月最火 Java 项目大盘点