问题标签 [nsmutabledictionary]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
197 浏览

iphone - NSXMLParser 和内存管理问题

我一直在尝试实现 NSXMLParser,但到目前为止我遇到了内存问题、性能问题或者它不起作用。

我最初是从网上的一个例子开始工作的,它泄露了一堆内存。我正确释放了对象,但发现性能受到影响,因为我会为每个元素分配然后释放每个对象。所以后来我决定使用效果更好的属性,但是当我尝试将字典添加到数组时它并没有坚持:

所以我有3个问题。属性是处理内存管理问题的最佳方法吗?如果是这样,为什么我不能将 NSDictionary *entry 存储到覆盖中?如果属性不是最好的方法是什么?

干杯

编辑:我正在处理相对较小的 xml 文件,但它们有很多元素。我已经从 URL 下载了它们并将数据放入 SQLite 数据库。

没有使用其他委托调用,因为唯一的数据在属性中。最后的 NSLog 只返回 null。

0 投票
1 回答
523 浏览

objective-c - NSMutableDictionary 的内存泄漏

困惑为什么这行代码会导致内存泄漏:

非常感谢任何有关修复的建议!

问候,乙

0 投票
2 回答
1054 浏览

iphone - Objective-C:向 NSMutableDictionary 添加一个观察者,当计数达到 0 时收到通知

我想在 NSMutableDictionary 的计数达到 0 时收到通知。如果不扩展 NSMutableDictionary(我听说你不应该这样做),这是否可能?

例如,我是否可以通过在检查计数是否为 0 时调用原始方法来模仿删除方法?或者有没有更简单的方法。我尝试了KVO,但没有奏效......

任何帮助表示赞赏。

约瑟夫

0 投票
1 回答
263 浏览

objective-c - 对所有模型 iVar 使用一个设置器

我有一系列适用于我的应用程序的模型。在所有这些模型中,有(将有)大约 200 或 300 个实例变量。该应用程序将其持久数据存储在基于 Web 的服务器上(MySQL - 但我想这部分无关紧要)。每当更新模型 iVar 时,我都需要调用服务器以更新该 iVar 的适当值。

我当前的模型策略是(头文件):

(实现文件):

问题是,如果我有 200 或 300 个 iVar 都需要对服务器进行相同的更新调用,这意味着要编写很多setter。此外,如果我需要更改方法调用,我必须更新整个应用程序中每个 setter 中的每个方法。

在设置之前,是否有一个过程可以让我首先通过一种方法运行每组 iVar?

我想只有一个NSMutableDictionary每个模型对象来存储所有 iVar,但这抽象了 setter 和 getter,并且可能会为这么多字典引入很大的内存占用。但是,这样做意味着每次设置字典时,我都可以通过一种方法传递它。

据我了解,在运行时将 iVar 动态添加到对象模型被认为是一件坏事,因为指针引用了可能依赖于模型的任何子类(子类指针不会偏移,除非完成完全重新编译)。

任何想法和建议都非常感谢。

更新

根据 Ole 的建议,这里是解决方案(尽管不幸的是,它使用的代码比几行多一点)......

在模型中,我添加了一个可以在需要时设置的方法。我没有直接从 init 调用该方法,因为添加从服务器返回的一大堆结果会触发每个添加对象的观察者。所以我在初始化并更新了来自服务器的第一个抓取之后调用该方法。

这是代码...

然后我将观察者添加到模型中:

在我的实际实现中,我还碰巧发布了一个对象集的通知,self以便我可以更新任何应该听但没有注意的东西(比如 中的东西NSArrayControllers)。

0 投票
5 回答
17984 浏览

iphone - 如何获得 NSDictionary/NSMutableDictionary 的原始订单?

我用 10 个键创建了 NSMutableDictionary。现在我想以与添加到 NSMutableDictionary 相同的顺序访问 NSMutableDictionary 键(使用 SetValue:* forKey:* );

我怎样才能做到这一点?

0 投票
2 回答
6081 浏览

objective-c - 查看 NSMutableDictionary 的内容

如何查看内容NSMutableDictionary

0 投票
4 回答
20236 浏览

objective-c - NSMutableDictionary,在 Objective-C 编程中具有单键保存多个值

请告诉我如何在 NSMutableDictionary 中为同一个键设置多个值?

当我使用以下方法时,这些值将被替换为最近的值。

就我而言:

当我查看字典的内容时,我只得到reminderDatefor 键代码。在这里,所有值的代码都是相同的。如何避免名字和姓氏被替换为plannedReminder.

谢谢你!

0 投票
1 回答
1378 浏览

iphone - 将数据添加到 NSDictionary... SRSLY?没有更快的方法吗?

我来自 Flash ActionScript 背景。我来自哪里,我可以像这样设置一个类似字典的对象:

所以来到Objective-C,我惊讶地发现与此等价的似乎是:

当然有更简单的方法......或者这真的是我的命运吗?

0 投票
3 回答
3515 浏览

objective-c - 使用不可复制对象作为 NSMutableDictionary 的键?

我试图弄清楚这段代码引用:Cocoa: Dictionary with enum keys?

和,

但是感觉有些不太好。有什么建议吗?

0 投票
1 回答
1325 浏览

nsdictionary - 具有容量的 NSMutableDictionary

一旦 NSMutableDictionary 已经达到其对象容量限制,当你尝试添加它时会发生什么?这会撞出一个还是会抛出异常?当我添加一个新的字典对象时,还有什么方法可以让它弹出最旧的字典对象?