NSString 长度和保留计数。需要澄清

2023-12-21

根据以下代码,请指教

NSString *str= [[NSString alloc] initWithString:@"Hello world"];   

NSLog(@"Length: %lu\n", [str length]);              // 11
NSLog(@"Retain count is %lu\n", [str retainCount]); //1152921504606846975

[str release];

NSLog(@"%lu\n", [str length]);                      // 11
NSLog(@"Retain count is %lu\n", [str retainCount]); //1152921504606846975
  1. 本来我想知道为什么这个数字这么大,但后来看到了一个a发帖解释一下 https://stackoverflow.com/questions/1390334/nsstring-retain-count。让我问这个......为什么这个数字变化很大,无论我使用%d vs %lu。本来,我用的是%d,但收到警告说“转换指定类型为 int,但参数的类型为 NSUInteger(又名 unsigned long)。解决办法是改变%d to %lu"

  2. 为什么保留计数不减少?大数字仍然显示不变,之后str已发送release

  3. 为什么我仍然可以访问str, 发送后release?


这可能是一个难以接受的答案,但这是你应该做的:

  1. 别担心。(就 %d/%lu 而言,这些说明符只是期望不同的数据类型,并且 %d (int) 与 %lu (unsigned long) 相比具有更小且不同的范围)
  2. 别担心。
  3. 不要这样做,尤其不要依赖它。

这可能是因为你从一个常量字符串开始(@"Hello world")表明当您调用release时内存没有被释放,并且retainCount很大。但如果您必须关心保留计数,那么您就做错了。

您在正确的位置释放了字符串,这才是最重要的——以后不要尝试使用它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NSString 长度和保留计数。需要澄清 的相关文章

  • 在 UIViewController 上添加 UIView

    我想在 uiviewcontroller 上添加一个 自定义 uiview 这个自定义视图是我用 xib 创建的 它与视图控制器分开 有谁知道如何将带有 xib 的 uiview 添加到 uiviewcontroller 中 提前谢谢了 您
  • UIImage initWithContentsOfFile 不起作用

    我有问题 我想避免 UIImage imageNamed 所以我做了 UIImage prodImg UIImage alloc initWithContentsOfFile myimage png controller productIm
  • 调整在drawRect中绘制的矩形的大小

    我有两个UIViews 我的目标是绘制包含这两个的最小矩形UIViews 我想用我要摆脱的框架画一个矩形 CGRectUnion view1 frame view2 frame 但是当我移动两者中的任何一个时UIViews 我需要更新轮廓矩
  • 从 CocoaPods 添加 pod 时,架构 x86_64 的重复符号

    我正在尝试使用谷歌分析 https developers google com analytics devguides collection ios v3 进入我的应用程序 但通过 CocoaPod 添加后立即收到此错误 以前我的 Pod
  • 没有这样的模块“Ensembles”错误 - 导入 Objective-C 框架以在 swift 项目中使用

    我将 Ensembles 添加到我的 Swift 项目 在这里找到https github com drewmccormack ensembles https github com drewmccormack ensembles 我没能在我
  • 为什么 Obj-C 属性默认所有权“分配”而不是“强”

    我正在向旧项目添加 Swift 类 一切进展顺利 直到我尝试向 Swift 类添加属性 生成的标头无法编译 我认为问题是 在生成的代码中 Swift 省略了strong所有权并仅将其声明为nonatomic 这通常应该足够了 因为 prop
  • 导出 iPhone 地址簿数据库的可能方法

    我想将 Phone s Address Book sqlite db 导出到我的 iPhone 应用程序中 我在网上搜索过 但一切似乎都在 ABAddressBook 上迭代 但我想知道是否可以以编程方式将 Phone s Address
  • Objective-C 实现文件中方法名后面的分号

    void designImageViewNow some code here 分号写法正确吗 就在实现文件 Objective C 中方法名称之后 正文括号之前 这行得通吗 当我正在开发 iPhone 应用程序时 我错误地将分号放在了一个自
  • 将 NSString 的 NSArray 转换为 NSNumber 的更好方法

    考虑下面的代码 NSString param string 1 3 6 10 15 22 28 30 NSArray params param string componentsSeparatedByString NSNumberForma
  • 带 ModalPresentationStyle 的弹出框在 iOS 7 iPad 中不居中

    我在使用 iOS 7 时遇到了一个问题 这似乎是一个错误 或者只是我没有做正确的事情 我有 modalViewController 它在 iPad 上以 ModalPresentationStyle 的形式显示为弹出窗口 而且它不是标准尺寸
  • 从视频创建缩略图 - 提高速度性能 - AVAsset - iPhone [重复]

    这个问题在这里已经有答案了 我正在使用基于以下线程中的代码的代码来生成视频缩略图 从 iPhone SDK 中的视频 URL 或数据获取缩略图 https stackoverflow com questions 1347562 gettin
  • 创建类似于邮件应用程序菜单的 iPhone 弹出菜单

    当您想要回复消息时 我想创建一个类似于邮件应用程序中的弹出菜单 我在多个应用程序中看到过这一点 所以我不确定框架中是否内置了某些内容或一些示例代码 在 Swift 中创建操作表 代码已使用 Swift 5 进行测试 从 iOS 8 开始 U
  • NSMutableArray 实例变量内存管理

    我正在做最后一点内存管理整理 但有些东西我不明白 我已经检查了所有文档 Stack Overflow 等 但仍然不明白 我怀疑这与数组有关 我有一个NSMutableArray作为实例变量 我用它来保存从另一个数组中的对象创建的对象 vie
  • UITableview 中的水平和垂直滚动[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 I want to make a lineup for a festival You can see what I want to a
  • 在 uilabel 中查找文本的位置 {x,y}

    我有一个来自服务器的字符串 我正在 UILabel multiligne 上显示它 在该字符串中 我正在识别一些特定的子字符串 我想在该子字符串上放置一个按钮 按钮将是 UILabel 的子视图 为此 我需要子字符串坐标 我经历过这个 但我
  • iPad 照片选择器崩溃

    我正在使用以下函数根据 UIActionSheet 的结果激活设备相机或图像选择器 如果 fromCamera YES 那么它适用于 iPhone 和 iPad 如果 fromCamera NO 那么它可以在 iPhone 上运行并出现图像
  • 最小的 iOS 蓝牙管理器示例

    我一直在构建一个最小的示例 用于使用 iOS 5 0 中的 BluetoothManager 私有框架来检测附近的蓝牙设备 使用此问题中找到的答案 寻找触手可及的通用蓝牙设备 https stackoverflow com question
  • 如何使用 iPhone SDK 实现可滑动的图像堆栈(例如照片应用程序)?

    我想获取一堆图像 或者可能是一组用于下载图像的 URL 并以全屏方式显示它们 一次一个 使用 iPhone SDK 使用用户滑动来平滑地为堆栈中的下一个图像设置动画 Apple 的 Photo app 似乎可以做到这一点 此外 如果尚未检索
  • 从 UIImagePickerController 相机视图推送 viewController

    我正在开发一款消息应用程序 类似于 WhatsApp 用户可以互相发送文本和图像消息 当用户想要发送图像时 他可以从相机胶卷中选择一张图像 也可以用相机拍摄一张图像 这就是我介绍的方式UIImagePickerController对于这两种
  • insertNewObjectForEntityForName:

    我使用 Xcode xcdatamodel 文件编辑器设置了一个实体 我创建了一个名为 Person 的实体 添加了一些属性 然后生成了一个 m 文件来表示它 一切都很好 现在 当我去编写一行代码时 例如 Person person Per

随机推荐

  • 为什么 ContinuationToken 不能用于 Azure 搜索 API 中的分页?

    阅读 Azure Search NET SDK 的文档 我发现 ContinuationToken 属性不应该用于分页 这与 odata nextLink and search nextPageParameterREST API 中的属性
  • 如何在 bash shell 中编写漂亮优雅的 linux 命令

    我在 Ubuntu 12 04 上的 VM 中运行多个 Web 应用程序 当我 ssh 进入虚拟机时 我发现自己经常输入以下内容 cd var virtual app1 com cd var virtual app2 com cd var
  • 每创建 3 列后添加一个新行

    在 Shopify 产品页面中 添加了一个新部分 以在 3 列行中显示一些统计信息 我试图使用下面的代码在 3 次迭代后将每个新列放入新行中 我希望行只有 3 列 这似乎不符合我的逻辑 请帮我找出为什么第三次迭代后的列没有出现在新行中 h2
  • 无法安装 GWT 开发者插件

    我开始学习 GWT 并在 Eclipse 中编写了一个示例应用程序 然后我说 在服务器上运行 它给了我一个要打开的 URL 我在 Chrome 中打开了它 我看到一条提示要求我安装 GWT Developer Plugin 并给了我一个li
  • 我可以使用 SerialPort.Write 发送字节数组吗

    的文档SerialPort Write说 默认情况下 SerialPort 使用 ASCIIEncoding 对字符进行编码 ASCIIEncoding 将所有大于 127 的字符编码为 char 63 或 要支持该范围内的其他字符 请将
  • iif(Iserror())函数仍然返回#error

    我有以下函数在查询中创建一列 MTD IIf IsError FormatNumber 62xx F40 0 FormatNumber 62xx F40 它链接到一个 Excel 文件 人们将数字和文本放在同一列中 本例中为 F40 我需要
  • 是否可以在 Chrome 中创建 ClipboardEvent 实例?

    我需要以编程方式在 Chrome 中创建一个 ClipboardEvent 实例 但是当我运行构造函数时 new ClipboardEvent paste dataType text plain data some data 它抛出以下错误
  • 编写内联事件处理程序是否是不好的做法[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 编写内联事件处理程序是一种不好的做法吗 对我来说 当我想在事件处理程序中使用局部变量时 我更喜欢使用它 如下所示 我更喜欢这个 This is
  • 将数据切片(即n×n矩阵)添加到R中的多维矩阵

    根据标题 有没有办法将数据切片 一个 n n 矩阵 附加到 R 中现有的 N 维矩阵 例如 我有以下内容 one lt array 1 dim c 3 3 two lt array 2 dim c 3 3 three lt array 3
  • xamarin 中路径共享违规

    我对 Android 编程很陌生 我有一个代码 它在指定的文件夹中创建一个文件 然后尝试向其中写入一些内容 就像下面这样 path System Environment GetFolderPath System Environment Sp
  • Inno Setup - 更改 MessageBox 语言

    我有这个问题 我做了一个个人消息框 我以一种非常有趣的方式输入了英语和西班牙语 但我希望我的安装程序只显示一种语言 就像 当我在菜单选择器西班牙语 在该消息框中显示西班牙语 如果在菜单选择器中选择意大利语 让该消息框显示意大利语 code
  • WebUSB API 无法找到兼容设备

    我正在尝试通过网页 通过 HTTPS 访问我的 USB 设备 我的 USB 设备已启动并正在运行 并且还启用了实验性 Web 平台功能 chrome flags enable experimental web platform featur
  • C# mvc 从 AJAX 调用返回 JSON 或文件

    我的观点中有这样的东西 var url Url Action DownloadZip Program programNums selectedRow ajax url url dataType json async false succes
  • Firebase 托管自定义域错误

    我最近获得了一个 tk 域名 并愿意将其作为自定义域名链接到 Firebase 托管 阅读文档并遵循教程后 我成功地将我的第一个应用程序部署到 Firebase 托管 可通过默认的 firebaseapp com url 访问它 但是 在尝
  • ASP.net 会员添加自定义列

    在我的母版页中 我有 MembershipUser thisUser Membership GetUser loggedInUserID thisUser ProviderUserKey ToString thisUser让我可以访问所有字
  • ionic 3 深度链接用于重置密码

    我正在使用 ionic 3 创建一个移动应用程序 我需要知道实现重置密码功能的逻辑 到目前为止 我可以向用户发送一封带有重置令牌的电子邮件 我在想 id 用户点击电子邮件中的链接 如果安装了应用程序 那么它应该打开专用于重置密码的应用程序页
  • 如何将轴标题的部分(一个或两个单词)设置为斜体

    有没有办法改变轴标题部分的样式 同时保持其余部分不变 就我而言 我怎样才能斜体y 轴标题中的 细菌 X 据我所知 该命令theme axis title y element text face italic 只能改变整个y轴标题 是吗 gg
  • Openerp 7 到 Odoo 8 - 如何转换数据库

    我正在尝试将 openerp7 迁移到 odoo 8 您知道如何将数据库版本 7 转换为较新的版本 8 吗 谢谢 选项1 要求odoo公 司做开放升级 https upgrade odoo com database upload通过有效的合
  • Ruby 浮点乘法的奇怪问题

    有人在 ruby 中解决这个问题吗 假设我们有 a 8 1999999 我们想将其四舍五入到小数点后两位 即 8 20 然后乘以 1 000 000 得到 8 200 000 我们这样做 a round 2 1000000 to i 但是我
  • NSString 长度和保留计数。需要澄清

    根据以下代码 请指教 NSString str NSString alloc initWithString Hello world NSLog Length lu n str length 11 NSLog Retain count is