iOS stringWithFormat 和 initWithFormat 有何不同?
在非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 有何不同?相关推荐
- [iOS] stringWithFormat 和 initWithFormat 有何不同?
都说Objective-C是一门入门简单,深入难的语言,一直觉得基础不是很牢固,所以这几天也反复在看Objective-C内存管理.ARC相关的东西,下一步准备看看OC的Runtime相关. NSSt ...
- [IOS]stringWithFormat vs. initWithFormat on NSString
参考:https://stackoverflow.com/questions/3898974/stringwithformat-vs-initwithformat-on-nsstring 简要来说就是 ...
- 【iOS沉思录】iOS内存管理试题总结与详解
"iOS中的GC垃圾回收机制与内存管理机制以及block" 问题:僵尸对象.野指针.空指针分别指什么,有什么区别? 僵尸对象:一个OC对象引用计数为0被释放后就变成僵尸对象了,僵尸 ...
- NSString中 initwithformat与stringwithformat区别
差别: 1.initWithFormat是实例办法 只能经由过程 NSString* str = [[NSString alloc] initWithFormat:@"%@",@& ...
- initWithFormat 和stringWithFormat的区别
差别: 1.initWithFormat是实例办法 只能经由过程 NSString* str = [[NSString alloc] initWithFormat:@"%@",@& ...
- iOS NSString使用stringWithFormat的拼接
##保留2位小数点## //.2代表小数点后面保留2位(2代表保留的数量) NSString *string = [NSString stringWithFormat:@"%.2f" ...
- 《转载》IOS高级开发~开机启动无限后台运行监听进程
非越狱情况下实现: 开机启动:App安装到IOS设备设备之后,无论App是否开启过,只要IOS设备重启,App就会随之启动: 无限后台运行:应用进入后台状态,可以无限后台运行,不被系统kill: 监听 ...
- (0019)iOS 开发之关于__weak修饰NSString以及内存管理的问题
前言:写这篇文章的初衷,是对阅读别人的博客提出的疑问,一路探索得来的.同时也要加强对内存管理以及block 的管理和使用. ARC指南1 - strong和weak指针 写到:打印出来是"( ...
- iOS内存管理策略和实践
来源:http://www.baidu.com/link?url=irojqCBbZKsY7b0L2EBPkuEkfJ9MQvUf8kuNWQUXkBLk5b22Jl5rjozKaJS3n78jCnS ...
最新文章
- java -jar 找不到引用类_怎么解决java -jar找不到主类问题
- 4.6.2 定义内表
- 天使玩偶/SJY摆棋子
- 第4章 批处理中的变量
- linux emacs 快捷键,emacs常用快捷键
- 应用安全-浏览器安全-攻防
- Eureka/Zookeeper/Consul三种注册中心的区别
- CAN总线负载率原理及计算
- theano学习--theano.function
- 死锁——哲学家就餐问题
- 2021-2023年个人发展规划整理
- Unity烘焙时UV Overlap的解决办法
- 【Android Studio】在Mac中更换JDK Location
- 为什么重写equals方法时一定要重写hashCode方法
- panic: time: missing Location in call to Time.In
- CSS——网页的布局方式
- Oracle 10G 64位下载
- 大端模式和小端模式是什么意思?
- matlab画线的形状颜色
- Instant Client Light:unsupported server character set ZHS16GBK
热门文章
- 小白也能接广告赚钱,实操月入3000+项目详解
- 问题解决:pvcreate过程中错误Device /dev/sdb not found (or ignored by filtering)
- 【致敬嵌入式攻城狮第2期活动预热征文】蜂鸣器加流水灯按键检测的实现
- 任天堂Game Boy Color JavaScript模拟器
- 移动APP的崛起推动了智能手机飞跃发展
- python中nonlocal是什么意思_Python中关键字nonlocal和global的声明与解析
- 关于计算机的英语笑话,双语笑话 假如生活是一台电脑
- K2 BPM PaaS平台签约福耀玻璃:面向微服务应用下的BPM应用平台
- ARFoundation系列讲解 - 34 AR看车一
- SWIG VS2017安装配置 tcy