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相关推荐

  1. IOS学习笔记十六(NSString和NSMutableString)

    1.NSString和NSMutableString NSString是不变字符串类,有点像java里面的String,NSMutableString是可变字符串类,有点类似java里面的String ...

  2. OC本学习笔记Foundation框架NSString与NSMutableString

      一.NSString与NSMutableString         相信大家对NSString类都不陌生.它是OC中提供的字符串类.它的对象中的字符串都是不可变的,而它的子类NSMutableS ...

  3. NSString、NSMutableString基本用法

    NSString.NSMutableString基本用法 NSString其实是一个对象类型.NSString是NSObject(Cocoa Foundation的基础对象)的子类 一.NSStrin ...

  4. NSString 和 NSMutableString

    // //  main.m //  字符串(NSString&NSMutableString) // //  Created by 闫合 on 16/5/19. //  Copyright © ...

  5. 《Objective-c》Foundation框架 -(字符串:NSString和NSMutableString)

    一.NSString(不可变字符串) 1.创建字符串的方式:(利用对象方法) 方式一:最快速的创建 方式二: 方式三: 方式四: 方式五:NSUTF8StringEncoding 用到中文就可以用这种 ...

  6. NSString ,NSMutableString用法以及一些常用方法

    2019独角兽企业重金招聘Python工程师标准>>> 1.NSString的用法 //1.创建常量字符串.NSString *string1 = @"这是一个NSStri ...

  7. 关于NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary

    NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary 在 OC 中我们天天都要用,而我们要怎 ...

  8. NSString / NSMutableString 字符串处理,常用代码 (实例)

    Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重 ...

  9. IPHONE 开发 7 -- Object C 02 字符串NSString 与 char* ,字符串的遍历,字符串的比较,截取与大小写改变,搜索字符串与替换字符串...

    Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重 ...

最新文章

  1. 让炼丹更玄学!苏大博士生用「天干地支」生成随机种子,项目已开源
  2. ffmpeg的中文学习文档
  3. 高性能网站建设的14个原则(转载)
  4. STL - 底层实现
  5. 解决Mysql5.7以上版本, 使用group by抛出Expression #1 of SELECT list is not in GROUP BY clause and contains no异常
  6. 我国博士生延期毕业率高达68.3%,导致博士延期原来是这10个原因
  7. 关于TikTok的变现思考和三种玩法
  8. 2018ACM-ICPC南京赛区网络赛: J. Sum(积性函数前缀和)
  9. Xcode无法识别真机
  10. 分布式存储系统学习笔记(一)—什么是分布式系统(4)—容错机制
  11. 计算机视觉论文-2021-09-07
  12. 机器人学中一些常用的三角函数公式
  13. 0723数组复习 堆区 动态数组
  14. 游戏策划试题(1)——摘自牛客网
  15. 杰理之AD140 开发板芯片没 trim 过【篇】
  16. VUE2安装初始化步骤(2022)
  17. 利用Python爬取《囧妈》豆瓣短评数据,并进行snownlp情感分析
  18. SAP通过转义字符新增ICON图标
  19. 【因果推断与机器学习】Causal Inference: Chapter_2
  20. 【深度学习】机器学习\深度学习常见相关公开数据集汇总(图像处理相关数据集、自然语言处理相关数据集、语音处理相关数据集)

热门文章

  1. mysql 创建数据库文件_mysql学习之通过文件创建数据库以及添加数据
  2. python画精美图案_Python语言的魅力------完美图案
  3. 什么叫大地高_什么才叫睡得好?睡觉能满足这5个标准,说明睡眠质量高
  4. linux内核 默认路由表,Linux 默认路由表 0.0.0.0
  5. bootstrap下拉框分页_【Bootstrap】 bootstrap-select2下拉菜单插件
  6. 计算机基础知识二进制转换,计算机基础知识数制转换
  7. 雷军:我40岁一事无成
  8. 为什么会用这个工具的产品经理,越来越值钱?
  9. java signal handler_JAVA优雅停机的实现
  10. java oauth2登录以及权限_还得看 Java!Gitee 4月最火 Java 项目大盘点