在非ARC环境下,循环构造10w个NSString,

首先是stringWithFormat,占用内存 5.2M

for (int i = 0; i < 100000; i++) {[NSString stringWithFormat:@"%d",1234567890];}

然后加上@autoreleasepool,占用内存 520KB

for (int i = 0; i < 100000; i++) {@autoreleasepool {[NSString stringWithFormat:@"%d",1234567890];}}

再来试试initWithFormat,占用内存 3.6MB

for (int i = 0; i < 100000; i++) {[[NSString alloc] initWithFormat:@"%d",1234567890];}

再加上autorelease尾巴和autoreleasepool,占用内存 520KB

for (int i = 0; i < 100000; i++) {@autoreleasepool {[[[NSString alloc] initWithFormat:@"%d",1234567890] autorelease];}}

结论:
+ stringWithFormat:
类方法,返回一个autorelease的NSString实例,不用手动Release,在自动释放池中会自动释放。

– initWithFormat:
实例方法,返回一个自己Alloc申请内存的NSString实例,根据OC内存管理黄金法则,管杀管埋,它则需要自己手动Release。

因为这两个方法只是在没有使用ARC的时候有所不同,一个需要手动Release一个则是自动进入autoreleasepool,所以在使用ARC的时候他们俩几乎没有什么区别。

iOS stringWithFormat 和 initWithFormat 有何不同?相关推荐

  1. [iOS] stringWithFormat 和 initWithFormat 有何不同?

    都说Objective-C是一门入门简单,深入难的语言,一直觉得基础不是很牢固,所以这几天也反复在看Objective-C内存管理.ARC相关的东西,下一步准备看看OC的Runtime相关. NSSt ...

  2. [IOS]stringWithFormat vs. initWithFormat on NSString

    参考:https://stackoverflow.com/questions/3898974/stringwithformat-vs-initwithformat-on-nsstring 简要来说就是 ...

  3. 【iOS沉思录】iOS内存管理试题总结与详解

    "iOS中的GC垃圾回收机制与内存管理机制以及block" 问题:僵尸对象.野指针.空指针分别指什么,有什么区别? 僵尸对象:一个OC对象引用计数为0被释放后就变成僵尸对象了,僵尸 ...

  4. NSString中 initwithformat与stringwithformat区别

    差别: 1.initWithFormat是实例办法 只能经由过程 NSString* str = [[NSString alloc] initWithFormat:@"%@",@& ...

  5. initWithFormat 和stringWithFormat的区别

    差别: 1.initWithFormat是实例办法 只能经由过程 NSString* str = [[NSString alloc] initWithFormat:@"%@",@& ...

  6. iOS NSString使用stringWithFormat的拼接

    ##保留2位小数点## //.2代表小数点后面保留2位(2代表保留的数量) NSString *string = [NSString stringWithFormat:@"%.2f" ...

  7. 《转载》IOS高级开发~开机启动无限后台运行监听进程

    非越狱情况下实现: 开机启动:App安装到IOS设备设备之后,无论App是否开启过,只要IOS设备重启,App就会随之启动: 无限后台运行:应用进入后台状态,可以无限后台运行,不被系统kill: 监听 ...

  8. (0019)iOS 开发之关于__weak修饰NSString以及内存管理的问题

    前言:写这篇文章的初衷,是对阅读别人的博客提出的疑问,一路探索得来的.同时也要加强对内存管理以及block 的管理和使用. ARC指南1 - strong和weak指针 写到:打印出来是"( ...

  9. iOS内存管理策略和实践

    来源:http://www.baidu.com/link?url=irojqCBbZKsY7b0L2EBPkuEkfJ9MQvUf8kuNWQUXkBLk5b22Jl5rjozKaJS3n78jCnS ...

最新文章

  1. java -jar 找不到引用类_怎么解决java -jar找不到主类问题
  2. 4.6.2 定义内表
  3. 天使玩偶/SJY摆棋子
  4. 第4章 批处理中的变量
  5. linux emacs 快捷键,emacs常用快捷键
  6. 应用安全-浏览器安全-攻防
  7. Eureka/Zookeeper/Consul三种注册中心的区别
  8. CAN总线负载率原理及计算
  9. theano学习--theano.function
  10. 死锁——哲学家就餐问题
  11. 2021-2023年个人发展规划整理
  12. Unity烘焙时UV Overlap的解决办法
  13. 【Android Studio】在Mac中更换JDK Location
  14. 为什么重写equals方法时一定要重写hashCode方法
  15. panic: time: missing Location in call to Time.In
  16. CSS——网页的布局方式
  17. Oracle 10G 64位下载
  18. 大端模式和小端模式是什么意思?
  19. matlab画线的形状颜色
  20. Instant Client Light:unsupported server character set ZHS16GBK

热门文章

  1. 小白也能接广告赚钱,实操月入3000+项目详解
  2. 问题解决:pvcreate过程中错误Device /dev/sdb not found (or ignored by filtering)
  3. 【致敬嵌入式攻城狮第2期活动预热征文】蜂鸣器加流水灯按键检测的实现
  4. 任天堂Game Boy Color JavaScript模拟器
  5. 移动APP的崛起推动了智能手机飞跃发展
  6. python中nonlocal是什么意思_Python中关键字nonlocal和global的声明与解析
  7. 关于计算机的英语笑话,双语笑话 假如生活是一台电脑
  8. K2 BPM PaaS平台签约福耀玻璃:面向微服务应用下的BPM应用平台
  9. ARFoundation系列讲解 - 34 AR看车一
  10. SWIG VS2017安装配置 tcy