initWithFormat 和stringWithFormat的区别

article/2025/11/5 20:00:28

差别:

1、initWithFormat是实例办法

只能经由过程 NSString* str = [[NSString alloc] initWithFormat:@"%@",@"Hello World"] 调用,然则必须手动release来开释内存资料

2、stringWithFormat是类办法

可以直接用 NSString* str = [NSString stringWithFormat:@"%@",@"Hello World"] 调用,内存经管上是autorelease的,不消手动显式release


别的国外有个贴子对此有专门评论辩论(http://www.iphonedevsdk.com/forum/iphone-sdk-development/29249-nsstring-initwithformat-vs-stringwithformat.html)

并且提出了一个常见错误:

label.text = [[NSString alloc] initWithFormat:@"%@",@"abc"];

最后在dealloc中将label给release掉

然则仍然会产生内存泄漏!

原因在于:用label.text = ...时,实际是隐式调用的label的setText办法,这会retain label内部的字符串变量text(哪怕这个字符串的内容跟传进来的字符串内容雷同,但体系仍然当成二个不合的字符串对象),所以最后release label时,实际上只开释了label内部的text字符串,然则最初用initWithFormat生成的字符串并未开释,终极造成了泄漏。

解决办法有二个:

1、

NSString * str = [[NSString alloc] initWithFormat:@"%@",@"abc"];

label.text = str;

[str release]

最后在dealloc中再[label release]

2、

label.text = [NSString stringWithFormat:@"%@",@"abc"];

然后剩下的工作交给NSAutoreleasePool

最后,若是你不断定你的代码是否有内存泄漏题目,可以用Xcode中的Build-->Build And Analyze 做初步的搜检.



http://chatgpt.dhexx.cn/article/hs651Eor.shtml

相关文章

C# string Format

使用C#格式化字符串 转载自博客园,原文连接:https://www.cnblogs.com/FlyingBread/archive/2007/01/18/620287.html,向原文作者献上敬意 1 前言 如果你熟悉Microsoft Foundation Classes(MFC)的CString,…

NSString函数stringWithFormat与stringWithString的比较

我们经常会初始化一些string使用NSString的stringWithString函数 但使用时发现了一个stringWithString的问题,如图 当参数是nil时,stringWithString会crash,所以使用时必须验证参数不是nil 相比较stringWithFormat就不会crash但返回的str也…

stringWithFormat:用法及注意事项

在ObjectiveC中NSString中有一个 stringWithFormat:方法 常见的输出方式: NSString *height; height [NSString stringWithFormat:"Your height is %d feet, %d inches.",5,11]; NSLog("%",height); 输出结果: 2013-04-…

虚拟机VirtualBox下载与安装、安装Ubuntu超详细图文步骤,对一些配置问题也有所写。

对于机器学习和深度学习来说,Linux系统是必不可少的。而我们在只是学习当中一般不会去重装一个Linux系统,而是去使用虚拟机来使用Linux系统。在VMware与VirtualBox这两款虚拟机的体验上,个人更偏向于后者,因为它所占内存更小&…

安装Windowsxp虚拟机

1.打开VMware,选择创建新的虚拟机,微软windows系统选择典型,而linux系统选择自定义: 2.选择稍后安装操作系统: 3.下一步选择相应合适的版本,选择存放位置: 4.选择合适大小的硬盘给虚拟机&…

在虚拟机VMware上安装XP系统

由于最近在学习uc/os-ii操作系统需要用到Borland C 3.1版本的软件,但是由于本人笔记本电脑的系统为Windows7 64位操作系统,与BC3.1不兼容,又不想直接换成XP系统,所以想在虚拟机VMware上安装XP,刚开始在网上搜了很多教程…

VirtualBox安装

1、VirtualBox安装 运行安装程序,一直下一步即可。如果不想安装到C盘,可以自己选盘符。 注意:软件开发安装所有程序时,不要安装到有中文或特殊符号的路径下。 2、安装操作系统 点击新建,弹出如下对话框 名称&…

VirtualBox虚拟机安装

一、宿主机(物理机)要求 宿主机建议内存大于4G,cpu至少4个 二、下载virtualBox https://www.virtualbox.org/wiki/Downloads 下载的安装包,默认安装即可(也可指定目录安装) 三、下载系统镜像 可以参考另外一篇各种ISO镜像 四、VirtualBox安装虚拟…

使用VirtualBox安装Ubuntu系统

一、下载VirtualBox软件安装包和Ubuntu系统镜像 1.1 下载VirtualBox安装包 点我进入VirtualBox官网下载安装包。 1.2 下载ubuntu20.04系统镜像 我使用的是国内清华大学的镜像,点我进行镜像选择和下载,这里我选择的是64位的系统镜像。 二、安装Vi…

如何在vmware workstation 上安装xp系统

准备:系统ISO镜像,可去MSDN下载。**Vmware workstation软件** 安装过程: 1,打开vmware软件,点击“创建新的虚拟机” 2,在窗口中选择典型,然后下一步。 3,选择“稍后安装操作系统”…

超级详细的 VirtualBox 虚拟机安装 及入门教程

一、前言 虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。 虚拟机是在一些开发测试工作中常常需要用到的功能,常见的虚拟机…

virtualbox安装详解

环境 系统:win7 内存:8GB 软件版本 VBox版本:安装的最新版本 [VirtualBox-5.2.12-122591-Win.exe] 运行VirtualBox的安装程序 执行步骤如下: 1、进入安装向导,点击”下一步“ 2、进入自定安装,软…

使用 virtualBox 安装 ubuntu

1.在官网上下载virtualBox windows用户点击如下图开始下载: 2.下载好VirtualBox-6.1.34a-150636-Win.exe文件后运行,一直点击下一步完成安装 3.在ubuntu镜像站下载Ubuntu,如下图: 4.打开VirtualBox,开始新建&#xf…

手把手教,使用Oracle VM VirtualBox虚拟机安装Windows XP系统,爷青回

文章目录 一、前言二、Oracle VM VirtualBox下载安装三、XP系统镜像下载四、创建XP虚拟机五、启动虚拟机,安装系统六、主机与虚拟机双向互传文件 一、前言 我写了一篇关于VMware虚拟机安装Windows XP系统的文章:https://linxinfa.blog.csdn.net/article…

在虚拟机中安装Windows XP

首先,下载镜像文件: 链接在这里:ed2k://|file|zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_x14-80404.iso|630239232|CD0900AFA058ACB6345761969CBCBFF4|/ 可以使用迅雷下载,没会员我感觉也挺快(我没…

教程--用Oracle VM VirtualBox虚拟机安装winxp操作系统

zz http://www.dasairen.com/OracleVMVirtualBox/10181611099.html首先,安装Virtualbox,这一步骤一如你以往安装各种替他软件,此处就不再赘言。 打开安装好的Virtualbox,点击新建按钮,进入进入创建新建虚拟电脑的向导…

[XP虚拟机安装]VMware安装XP虚拟机

[XP虚拟机安装]VMware安装XP虚拟机 下载VMware下载XP Professional,我是在这个网站下的http://www.runker.net/windows-xp-sp3.html新建虚拟机,选择典型 选择刚刚下载的XP镜像文件(这里用简易安装更方便,如果不用简易安装还需要进…

VirtualBox安装教程及使用(Windows)

文章目录 0x00 文章内容0x01 VirtualBox的下载与安装1. 下载2. 安装3. 可能会出现错误 0x02 VirtualBox安装Centos1. 安装Centos2. 可能出现的问题3. 设置网络4. 导入VMware的虚拟机5. 克隆虚拟机 0xFF 总结 0x00 文章内容 VirtualBox的下载与安装VirtualBox安装Centos 0x01 …

windows XP虚拟机安装

一.安装环境:win10 VMware15 win xp.iso 二.安装过程: 1.用自定义(高级)安装 (原因是虚拟磁盘类型必须选IDE,而典型是默认磁盘类型的,如果你用典型发现到后面会报错) 2.按照自己的…

VirtualBox的下载与安装

文章来源:http://sh.qihoo.com/pc/91c30d12ff6bd60e9?cota4&tj_urlxz&sign360_e39369d1&refer_sceneso_1 1.下载VirtualBox。 VirtualBox官方网站地址--https://www.virtualbox.org/, 图1 点击进入后页面左侧栏目中的Downloads,进入下载页面。因为楼…