initWithFormat与initWithString的区别、initWithFormat与stringWithFormat的区别
一、initWithFormat会创建新空间,NSLog时可以“%d”。
initWithString不一定创建新空间,取决于参数。
(1)如果后边是常量字符串不会创建新空间,NSLog("%d",[str retainCount])时输出为-1,NSlog("%u",[str retainCount])时输出为一串很长的数。
(2)如果是定义新字符串,就会创建新空间。
二、下边是转载的,链接:http://www.cnblogs.com/yjmyzz/archive/2011/02/25/1965338.html
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 做初步的检查.
相关文章
- Android文件操作工具类,拿去用吧!
五一放假了,作为一个外地狗,就别想回家了,还是在学校搞点东西吧!花了一天的时间,写了一个比较完善的文件管理工具类,希望小伙伴们能用上,有关于文件的常见操作,,一个我们…...
2023/3/26 19:26:46 - sql怎么发音mysql_[原创]SQL发音考证(搜寻SQL-86标准)
据我观察,中国的开发者创造了一种独特的SQL发音:/sɜːkl/,既好听,又好读,挺好的。但是今年我开始做数据库相关的工作,作为一个专业人士,决定对SQL发音进行一些考证。直接说结论吧,很…...
2023/3/26 19:19:44 - web前端:自定义视频播放器,原生js实现窗口自适应,视频/音量进度条应用
1.less页面包装,引用混合 //导入播放器基础css import "reset.less"; //定义进度条混合 .progress-bar-position() {position: relative; }.progress-bar-line() {//定位:位置不变position: absolute;//进度条:height:…...
2023/3/26 19:18:14 - train_test_split用法总结
sklearn.model_selection.train_test_split随机划分训练集和测试集 官网文档:http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html#sklearn.model_selection.train_test_split 一般形式: train_test_spli…...
2023/3/26 19:15:53 - 电磁兼容EMC详解及测试流程
一、电磁兼容EMC概念 EMC,全称为Electromagnetic Compatibility,即电磁兼容性;是指设备或系统在其电磁环境中能正常工作且不对该环境中任何事物构成不能承受电磁骚扰的能力。 因此,EMC包括两个方面的要求:一方面是指设备在正常运行过程中对所在环境产生的电磁干扰不能超过…...
2023/3/26 19:14:15 - 设计师计算机配置,超全面!写给设计师的电脑配置攻略之PS篇
对于设计师而言,电脑是吃饭的工具,如果工具不趁手,势必事倍功半。我相信大多数准备入行或已经工作多年的设计师,都明白这个道理。但是,大多数人对于怎么选配适合设计、适合自己的电脑存在很大的误区,或者完…...
2023/3/26 18:59:36 - Android UI--ViewPager扩展Tab标签指示,android开发网上购物app
布局搞定之后,定义一个适配器如下: package com.wwj.viewpager; import java.util.List; import android.support.v4.view.PagerAdapter; import android.view.View; import android.view.ViewGroup; /** ViewPager适配器 author wwj */ publi…...
2023/3/26 18:52:40 - 安卓apk 反编译为 Java源码图文教程
前言: 近来在模仿写一个app,可惜只有apk,没找到源码,只好进行反编译,特记录于此,供人参考。 测试环境:win10 64位 工具: apktool(链接:https://pan.baid…...
2023/3/26 18:50:52 - Vue基础学习
引自:https://mrbird.cc/Vue-Learn-Note.html mrbird大佬博客 Vue 入门 <!DOCTYPE html><html lang"en"><head><meta charset"UTF-8"><title>todoList</title><script src"https://cdn.jsdelivr…...
2023/3/26 18:49:30 - UpdatePanel的简单用法(非嵌套)
ScriptManager和UpdatePanel控件联合使用可以实现页面局部异步刷新的效果。UpdatePanel用来设置页面中局部异步刷新的区域,它必须依赖于ScriptManager,因为ScriptManager控件提供了客户端脚本生成与管理UpdatePanel的功能。 ScriptManager属性解释Enabl…...
2023/3/26 18:42:06 - 简述Mean shift 算法及其实现
文章目录Mean shift 是什么Mean shift 算法的预备知识什么是特征什么是特征空间什么是核密度估计核函数的表示Mean shift 算法Mean shift算法的公式推导Mean shift算法的流程Mean shift算法图示Mean shift 算法应用Mean Shift 算法应用在聚类Mean Shift 算法图像分割Mean shift…...
2023/3/26 18:42:02 - DHCP工作原理
DHCP工作原理图DHCP关键知识点DHCP服务器数据传输的端口为UDP67DHCP客户机数据传输的端口为UDP68客户机的源IP地址为:0.0.0.0客户机的目的IP地址:255.255.255.255DHCP过程详解发现阶段:DHCP客户机获取网络中DHCP服务器信息的阶段提供阶段:DHCP SERVER向DHCP客户机提供预分配…...
2023/3/26 18:41:22 - java笔记7----java中的方法、递归
1、方法 方法的定义 在程序开发的过程中,会编写到很多重复的代码,,可以使用方法对这些代码进行管理,可以使用方法实现对代的管理和重用(重复使用),可以把方法理解成一个可以重复多次使用的功能。 方法的格式 在给方法…...
2023/3/26 18:40:04 - 很好用的chrome 插件合集,不要错过
通用类插件 1、OneTab:将无数 Tab 合并在一个页面 很多时候我们在一个窗口打开太多的tab,每一个tab太小不容易管理,这时候使用OneTab能够把所有tab收起放在一个页面,点击就可打开该tab,非常方便。 2、Momentum&#x…...
2023/3/26 18:39:18 - 劳动争议案件是不是一定要用普通程序
一、劳动争议案件是不是一定要用普通程序 法律没有规定劳动争议案件一定要用普通程序,劳动争议案件仲裁后,如果不服裁决,向法院起诉的,案情比较简单的,法院可以用简易程序审理。 《中华人民共和国民事诉讼法》 第一…...
2023/3/26 18:36:37 - 2020电子设计大赛E题复盘
今年参加电赛,选择了E题。赛题基本要求: 这道题大体来说有两个方案。 方案一:用五个晶体管放大电路分别产生波形。(好处:好调试,同时不会因为其中一个元器件故障导致其他的波形都出不了结果。劣处&#x…...
2023/3/26 18:34:39 - 鼠标键盘与计算机无法连接,只有三个步骤可以轻松解决无法识别计算机,键盘和鼠标的问题!...
对于大多数人来说,无论是笔记本电脑还是台式机,浏览网络,聊天,玩游戏和办公室工作都像进食和喝水一样容易。但是了解计算机并不意味着了解计算机。有时,一个非常常见的小问题“键盘和鼠标无法响应”常常使许多朋友感到…...
2023/3/26 18:17:15 - day18周日休息_chap-IO1_字符输出_OutputStreamWriter、FileWriter、BufferedWriter
IO流部分记忆体系整理 这篇记录的是OutputStreamWriter、FileWriter、BufferedWriter 1.OutputStreamWriter【处理字符流。方向:内存向文件】 父类Writer OutputStreamWriter类对象下面简写为out (1)用指定输出流out,写回覆盖掉原来文件或者追加新内…...
2023/3/26 18:09:39 - uc/os--OSTaskCreate
创建一个任务时,应该传入参数:入口函数,函数所需要的参数指针,函数对应的栈指针,优先级 INT8U OSTaskCreate (void (*task)(void *pd), void *ppdata, OS_STK *ptos, INT8U prio) reentrant { void *psp; INT8U e…...
2023/3/26 18:09:13 - CSS 滚动条样式美化
滚动条主要属性 ::-webkit-scrollbar:滚动条整体部分::-webkit-scrollbar-thumb:滚动条里面的滑块::-webkit-scrollbar-track: 滚动条的轨道::-webkit-scrollbar-button: 滚动条轨道两端的按钮,允许通过点击微调滑块的…...
2023/3/26 18:06:43
最新文章
- initWithFormat与initWithString的区别、initWithFormat与stringWithFormat的区别
一、initWithFormat会创建新空间,NSLog时可以“%d”。 initWithString不一定创建新空间,取决于参数。 (1)如果后边是常量字符串不会创建新空间,NSLog("%d",[str retainCount])时输出为-1,NSlog…...
2023/3/26 19:29:46 - KubeSphere实战
文章目录一、KubeSphere平台安装1、Kubernetes上安装KubeSphere1.1 安装docker1.2 安装Kubernetes1.3 前置环境之nfs存储1.4 前置环境之metrics-server1.5 安装KubeSphere2、Linux单节点部署KubeSphere3、Linux多节点部署KubeSphere(推荐)二、KubeSphere实战1、多租户实战2、中…...
2023/3/26 19:29:44 - 自动机,即有限状态机
文章目录一、问题来源二、题目描述三、题解中的自动机四、自动机学习五、有限状态机的使用场景一、问题来源 今天做力克题目的时候看到了字符串转换整数的一道算法题,其中又看到了题解中有自动机的概念,所以在这里对自动机做个笔记。题目链接 二、题目描…...
2023/3/26 19:29:39 - 汇编指令入门
1. 世界的底层是原子和电子,电子构成电路(门电路,触发器),二进制的电路构成计算单元(加法器等),计算单元存储设备输入输出设备计算机。 (我们需要计算世界的真实问题&…...
2023/3/26 19:29:30 - 【2022年MathorCup大数据竞赛】B题:北京移动用户体验影响因素研究(三)(问题二的分析和结果)
目录:问题二的分析和结果 一、问题二分析二、模型准备2.1 模型建立2.1.1 多标签多分类模型2.1.1.1 分类器链算法2.1.2 单标签多分类模型2.1.2.1 附件1语音业务单标签多分类模型结果2.1.2.2 附件2上网业务单标签多分类模型结果2.2 模型改进2.2.1 过采样2.2.2 投票分类器2.2.3 模…...
2023/3/26 19:29:28 - WhatsApp拓客云控系统-SendWS群控管理后台功能介绍(三):WhatsApp多账号管理记录查询
WhatsApp云控系统有什么意义? 利用WhatsApp在海外进行营销引流推广,会出现多方面的问题,例如账号过多难以管理的问题。 实现WhatsApp云控群控系统,协助客户云控管理多个WhatsApp账号,云控坐席查看所有的详细信息和状…...
2023/3/26 19:29:26 - leetcode514. 自由之路
上一轮所有轮盘可能位置,到下一轮所有轮盘的可能位置的最小值 所以当前是一路走过来到这一轮所有可能位置的最小值,每一轮所有位置的最小值都保留了,所以成立 如果只保留一个最小的位置的话就不成立了,这里保留的是所有位置的最小…...
2023/3/26 19:29:25 - 英语学习词根词缀总结
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站 点击跳转浏览。 目录 一.联想法 二.词根词缀法 索引 高频词根A-B系列 1.ab/abs- 表示远离,或否定 2.ac-/acr- 表示尖,酸&#x…...
2023/3/26 19:29:00 - C++开发,这些GUI库一定不要错过
程序员宝藏库:https://gitee.com/sharetech_lee/CS-Books-Store 如果问Python这类集成度非常高的编程语言GUI开发用什么库,可以列举出很多不错的第三方库。 但是,如果这个问题放在C这种基础的编程语言上,很多同学估计一时间都无从…...
2023/3/26 19:28:49 - 一些实用的办公工具分享给你
ABBYY FineReader 这是一个可以转换PDF格式的图片文字识别软件,下载之后可以免费试用七天,或者选择去它的网站上传PDF进行识别转换,一天最多可以转换10次,且一次只能转换3个页面。 【操作方法】 打开软件,点击“图像…...
2023/3/26 19:28:46 - [Python教程]三位数倒序
前言 最近博主也是没有什么时间来写文章,估计已经快两个月没写新文章了吧,这不,今天有空,所以想着写一篇文章。 今天的文章主要是面对Python刚刚入门的读者写的 涉及知识点 数据的基本运算字符串与数字的拼接输入与打印 相信…...
2023/3/26 19:28:45 - [附源码]Python计算机毕业设计单位库房管理系统Django(程序+LW)
该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等…...
2023/3/26 19:28:43 - Python:ipython简介及与原生python shell比价
一、ipython简介 关于什么是ipython,本文就不加以介绍了,他是一个非常流行的python解释器,相比于原生的python解释器,有太多优点和长处,因此几乎是python开发人员的必知必会。 1. ipython相比于原生的python有什么优…...
2023/3/26 19:28:41 - 基于Android的家校互动系统app
需求信息: 功能需求: 1:发通知、发作业 发通知和发作业,是学校教师特有的功能,教师可以通过平台进行通知和作业的发放,每当发一条信息,该班的所有人员便可以收到来自服务器的信息推送,提醒家长打…...
2023/3/26 19:28:17 - java-net-php-python-s2s酒店管理系统计算机毕业设计程序
java-net-php-python-s2s酒店管理系统计算机毕业设计程序 java-net-php-python-s2s酒店管理系统计算机毕业设计程序本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发软件:idea eclipse 前端技术:Layui、HTM…...
2023/3/26 19:28:16 - K8s 实战 动态PV StorageClass 存储类
前面我们学习了 PV 和 PVC 的使用方法,但是前面的 PV 都是静态的,什么意思?就是我要使用的一个 PVC 的话就必须手动去创建一个 PV,我们也说过这种方式在很大程度上并不能满足我们的需求,比如我们有一个应用需要对存储的…...
2023/3/26 19:28:01 - 微信小程序使用textarea后内容随着屏幕上下移动的问题
该视频为复现视频 : 小程序 textarea Bug视频BUG :在安卓部分机型下 会导致 textarea设置的 placeholder 以及文字内容漂浮在上方 不会随着滚动而滚动。原因: textarea 是由客户端创建的原生组件,而原生组件是层级最高的 所以用Vi…...
2023/3/26 19:27:47 - python3.8
以下是脚本,根据自己的路径进行修改。 cd /home/projects echo "------------------------------yum install libffi-devel------------------------------" yum install libffi-devel wget http://www.python.org/ftp/python/3.8.13/Python-3.8.13.tgz …...
2023/3/26 19:27:46 - 200 aaaaaaaa ggggggjjjtrr
141. 受政策影响,项目启动不久就停工了,半年后发起人要求复工。由于相关政策更改,项目经理发现商业论证中启动项目的理由已经不充分。项目经理应该如何行动? () 带领团队修改商业论证 向发起人反映该问题 项目已经启动,…...
2023/3/26 19:27:15 - Java数据结构中栈和队列深度解析
栈和队列使用的范围很广,本篇用来深度解析Java数据结构中的栈和队列的深度解析,栈和队列都能用单向或双向链表来实现哦,希望可以帮助各位! 文章目录 目录 一、栈 1.1栈的概念 1.2栈的使用 1.3栈的自定义顺序栈实现 1.4栈的练习题…...
2023/3/26 19:27:02