分配给属性的 NSMutableArray 的正确内存处理?

2024-01-07

我有一个这样声明的属性:

@property (nonatomic, retain) NSMutableArray *pricingLevels;

我这样分配它:

 self.pricingLevels = [[[NSMutableArray alloc] init];

在我的 dealloc 中我有这个:

self.pricinglevels=nil;

当我用 xCode 分析我的代码时,它说我这里有内存泄漏:

self.pricingLevels = [[[NSMutableArray alloc] init];

我应该使用autolrelease对此,因为self.pricinglevels还保存对数组的引用?


self.pricingLevels是一个声明为的属性retained这意味着每次您通过属性分配(点语法或方法)设置它时,该对象都会自动为您保留该对象。

self.pricingLevels = [NSMutableArray array];
[self setPricingLevels:[NSMutableArray array]];

上面的代码将执行相同的操作并自动保留传递的数组。这就是幕后发生的事情(或类似的事情)。该方法被调用:

- (void)setPricingLevels:(NSMutableArray *)a {
    if(_pricingLevels != a) {
        [_pricingLevels release];
        _pricingLevels = [a retain];
    }
}

你看?自动保留,而之前的值自动释放。

EDIT 回答你的最后一个问题:是的,你应该打电话autorelease

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

分配给属性的 NSMutableArray 的正确内存处理? 的相关文章

随机推荐

  • Iframe 和同源策略以及反向代理黑客

    我一直在阅读具有不同域的 Iframe 然后是父文档 我有点困惑 据我了解 如果 iframe 与其父文档来自同一域 则父文档可以访问 iframe 的文档 看来我可以通过以下技巧来规避这个问题 我在以下位置设置了一个网络服务器mydoma
  • Android:处理ListView回收

    我正在开发一个音板应用程序 在其中使用 Listview Activity 但是由于Android的Listview具有回收其listview的属性 滚动列表视图时 我对所选文本视图所做的更改会反映在所有页面中 我不希望这种事发生 那么我该
  • J2ME 的 JSON 解析器

    我需要一个与 J2ME CLDC 1 1 配合使用的基本 JSON 解析器 Google 搜索返回了大量关于此问题的答案 有些甚至在 stackoverflow 上 但似乎所有内容都指向不再可用的库和解决方案 例如 很多都指向应该位于 js
  • 过滤负时间增量

    考虑一系列持有timedelta64 ns 测量两个事件 A 和 B 之间的时间差 gt time deltas 499900 1 days 23 45 13 499916 1 days 23 50 57 499917 00 03 27 4
  • VB 6:如何执行 .bat 文件但等到其运行完成后再继续?

    VB 6 如何执行 bat 文件但等到其运行完成后再继续 您将需要使用 Win32 API 调用Shell执行Ex http msdn microsoft com en us library bb762154 VS 85 aspx和从SHE
  • 如何处理自动模块中的拆分包?

    我目前正在测试将现有应用程序迁移到 Jigsaw Modules 我的模块之一使用 ElasticSearch 及其 Groovy 插件 org elasticsearch elasticsearch org elasticsearch m
  • boost::spirit 替代解析器返回重复项

    我正在研究https github com F Bergemann RegexSplitter https github com F Bergemann RegexSplitter 目的 解析正则表达式字符串 并创建可破坏和不可破坏的顶级子
  • 将整数数组转换为字符串的最佳方法是什么?

    我想转换一个 int 数组 像这样 1 1 2 1 转换为字符串 1121 最好的 最Pythonic的 方法是什么 我总是可以这样做 然后删除多余的括号 gt gt gt str 1 2 1 1 1 2 1 1 或者我可以这样做 s fo
  • Oracle 数据库变更通知

    我是 DCN 新手 我可以使用它来检测表中列的更新以及该表中的插入吗 我指的是this https docs oracle com cd E11882 01 java 112 e16548 dbchgnf htm JJDBC28815 是的
  • 如何修复div高度

    我正在开发一个聊天控制应用程序 我的问题是这样的 我输入文本 这用于拨打休息电话 获取响应并将其添加到聊天窗口 目前我的问题是这样的 聊天窗口变大 页面随着聊天框 div 一起滚动 有人可以告诉我如何停止整个页面的这种增量吗 简单来说 我的
  • 如何停止R中的for循环并保留数据

    我的代码在日期的 for 循环中运行 该代码需要一段时间才能运行 还剩几天时间 但我迫切需要任何结果 有没有办法打破代码 for 循环 但保留到目前为止已生成的所有数据 是的 您可以按 escape 检查结果 然后重新启动循环 for ii
  • 扩展协议,其中 Self:Swift 中的通用类型(需要 <...> 中的参数)

    我有一个需要泛型的类class Collection
  • 如何将 csv 字符串转换为 pandas 中的列表?

    我正在使用具有以下格式的 csv 文件 Id Sequence 3 1 3 13 87 1053 28576 2141733 508147108 402135275365 1073376057490373 97003854893559701
  • Jquery - 使用 .load 和选择器加载页面不会执行脚本?

    我正在尝试使用 load 方法将一个页面加载到另一页面中 此加载的页面包含一个我想在加载完成后执行的脚本 我整理了一个简单的示例来演示 索引 html
  • MVC:存储库和服务

    我对存储库中定义的内容以及留给服务的内容的限制感到困惑 存储库应该只创建与数据库中的表匹配的简单实体 还是可以使用这些实体的组合创建复杂的自定义对象 换句话说 服务是否应该在存储库上进行各种 Linq to SQL 查询 或者所有的查询都应
  • GSON 将布尔值序列化为 0 或 1

    All 我正在尝试执行以下操作 public class SomClass public boolean x public int y public String z SomClass s new SomClass s x true s y
  • Pandas Multiindex 从索引的第一个条目获取值

    我有以下多索引数据框 from io import StringIO import pandas as pd datastring StringIO File no runtime value1 value2 A 0 0 12 34 A 0
  • 以近乎实时的间隔刷新 RSS 源

    我有一个可以获取几百个 RSS 提要的系统 目前它们的刷新周期为 10 分钟 但我希望能够加快速度 以近实时 推送间隔获取 RSS 源的策略是什么 我遇到的一些解决方案 在 1 分钟时进行一次获取 如果没有变化 则在 2 处再次获取 然后是
  • Wt::Dbo 中的循环依赖

    Wt 建议使用前向声明来避免循环依赖 Settings h include
  • 分配给属性的 NSMutableArray 的正确内存处理?

    我有一个这样声明的属性 property nonatomic retain NSMutableArray pricingLevels 我这样分配它 self pricingLevels NSMutableArray alloc init 在