问题标签 [retaincount]

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 投票
3 回答
419 浏览

objective-c - 为什么保留计数在下面的代码中显示值为 2?

在这里,在上面的代码中,第一个 nslog 的输出是 "retain count 1 for show detail -- 0",这是正确的。但是,第二个 nslog 的输出如下 “retain count 2 for show detail -- 2”。

它的保留计数如何上升到 2?

如果可以的话,请帮助我....

0 投票
4 回答
201 浏览

iphone - 使用“保留”的对象泄漏

我有一个用我正在合成的保留属性定义的属性:

在我的 loadView 中,我正在这样做:

最后在我的 dealloc 中,我正在这样做:

因为我使用了一个分配器,所以我是否泄漏了这个对象(mySwitch)?我应该在分配框架时自动释放它吗?

请建议。

0 投票
4 回答
630 浏览

iphone - retainCount 的奇怪行为

当我使用NSArrayNSString对象记录保留计数时,我的行为不均匀。 看下面的代码,

这是我得到的输出

代码有什么问题??

谢谢

普拉蒂克·戈斯瓦米

0 投票
2 回答
196 浏览

objective-c - 引用计数在 [obj release] 之​​后仍然为 1,何时应该被释放

当我创建一个对象并检查其保留计数时,我得到了预期的 1。当我释放对象然后再次检查保留计数时,它仍然是1。对象不应该被释放,保留计数为0吗?

如果我设置为第一个,我确实看到保留计数为 0 。这是为什么?strnil

0 投票
2 回答
3236 浏览

iphone - 错误:*** -[CALayer 保留]:消息发送到已释放实例 0xdaa54d0

我正在开发简单的 iphone 应用程序。我正在处理两个视图。我首先推动了另一个视图控制器,当我删除当前视图以返回旧视图控制器时,我得到 [CALayer 保留]。EXEC_BAD_ACCESS.

在 gdb 中,我尝试使用 backtrace 命令查看我在下面给出的问题,但我找不到任何问题。如果有人可以帮助我解决这个问题,那就太好了。

(gdb) 回溯

谢谢,阿比

0 投票
1 回答
387 浏览

objective-c - 分配给保留属性的已分配对象的保留计数

在下面的代码中,我希望保留计数增加到 2,但在分配后它仍然为 1。分配给具有保留限定符的属性。保留将使对象的保留计数增加 1。谁能解释为什么保留计数不增加?

MyClass.h:

我的班级.m:

0 投票
1 回答
315 浏览

iphone - UITextView setEnabled:导致保留计数增加?

我有一个 UITextView,它的文本集来自一个局部变量。在此之后是否有可能:

保留计数加一?

编辑:

“问题”,如果是问题,在小视图的构造函数中:

现在,我已经“自动释放”了文本视图,但我不确定内存是否管理得当(这篇文章与这个问题有关)。

0 投票
4 回答
109 浏览

objective-c - 我们可以在 Objective-c 中释放一些变量不拥有但指向的内存吗?

我有一些这样的代码:

这是正确的还是内存泄漏?据我所知,根据对象所有权政策,只有 var1 可以释放第一行中分配的内存

0 投票
3 回答
710 浏览

objective-c - Objective-C 保留计数从 0 变为 2

我是 Objective-C 的新手。这是我在这里的第一篇文章。我创建了一个单例来管理我的应用程序接口到数据库。为了简单起见,我使用 NSMutableArray 作为 ivar。正如您将在下面的代码和日志输出中看到的,在将其分配给 NSMutableArray 对象之前保留计数为 0,然后在分配后保留计数为 2。

我不清楚为什么会这样。是因为 [NSMutableArray arrayWithObject:(id)] 创建了一个保留计数为 1 的对象,然后赋值 self.dataList 增加了保留计数?调用释放一次是否安全?这似乎不是正确的做法。

这里是源

...

日志显示以下内容:

0 投票
1 回答
259 浏览

iphone - 为什么此代码会在仪器上泄漏?

我正在对仪器进行一些内存分析,我觉得我的代码似乎在进行正确的内存管理。然而,仪器确信我正在泄漏,我无法弄清楚如何使泄漏消失。

在我的 Event.h 中有。

它们都在 dealloc 中释放

在我的工厂课上,我有

您可能会注意到,我在事件上设置的属性比我上面提到的要多,那是因为我让 Event 扩展了另一个更通用的实体。我什至没有发布该代码的原因是因为根据工具,我什至泄漏了 Event 类本身的设置器。

Instruments 抱怨 Event alloc 上存在泄漏,而 getEvent 选择器中的每一行都有另一个泄漏。rs 是我在整个应用程序中使用的库 (FMDB) 中的结果集对象,这似乎是检测到这些泄漏的唯一实体,所以我很确定这不是问题。我最近实际上在另一个项目中使用了同一个库,并且没有由此引起的泄漏,因此我将其作为泄漏源消除了。

(a) 当我返回事件对象时,我显然是在自动释放它。

(b) 我所有的设置器都在获取自动释放的对象,所以我只是按照内存管理文档对目标 c 的建议增加保留计数。

知道为什么 alloc 行和它后面的几乎每一行都可能泄漏吗?