问题标签 [retain]

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 回答
469 浏览

objective-c - 复制 NSMutableString 实例返回 -1 的 retainCount

有人可以解释为什么最后一行打印出-1吗?当在 NSMutableString 上调用 copy 时会发生这种情况,我希望 strFour 的 returnCount 为 1,因为应该返回一个不可变的副本。

非常感谢。

0 投票
1 回答
928 浏览

objective-c - NSString 保留复制问题

我在这里看到了一些关于使用字符串保留或复制的问题的帖子。我仍然无法完全理解差异或重要性。

就我而言,目前我有一个类,其中包含大量 nsstrings 来保存字符串。

我希望这个类只被实例化一次,并且我希望它的 nsstring 变量根据在表视图中单击的索引而改变。

我是否正确地说,如果我选择使用保留,那么每次我在我的 tableview 单击上设置它们的值时,我的 nsstrings 都会被覆盖,如果我选择复制,我会以某种方式有每个字符串的 2 个实例......?

对不起……我完全不明白

0 投票
1 回答
279 浏览

iphone - 函数调用后保留计数。我应该担心吗?

在程序泄漏之前,我通常不会检查保留计数。但是今天(我不知道)我检查了保留计数,现在我很困惑。

我不明白这个。因为我不分配 strErrorMessage,所以我不必按仪式释放它?

谁拥有 strErrorMessage 的所有权。

我必须在这里释放 strError 吗?(我认为不需要,但是保留计数 3 是什么)。

0 投票
7 回答
7730 浏览

iphone - 发送到解除分配的实例

每当我将视图控制器推送到我的堆栈上,然后将其弹出时,我都会收到此错误:

它似乎发生在dealloc被弹出的视图控制器上调用之后,并且仅适用于该视图控制器。我确信 CALayer 与视图本身有关,因为我不使用它们。

有任何想法吗?

编辑:这是回溯

0 投票
4 回答
425 浏览

objective-c - 释放和保留

假设我执行以下操作(foo 从某个对象开始):

只要我不重新分配 foo,最后我仍然会拥有相同的 foo,对吗?在 //STUFF 期间我不会冒失去 foo 的风险,是吗?

我想我正在确保我对发布的理解是正确的。如果我释放 foo,它实际上不会消失,直到它的所有句柄都消失了。换句话说,foo 必须分配给 //STUFF 中的某个其他对象,或者 foo 必须超出 //STUFF 中的范围(并且可能创建了一个新的 foo)才能获得实际的原始 foo要删除的对象,对吗?

编辑动机:

我想这样做的原因是可以说我有以下 switch 语句:

在切换之前释放 foo 并在结束时保留它是有意义的。除了案例 3​​。所以,我在想如果可以安全地执行我建议的操作,它可能会使代码更简单。

当然,我可以在每个 alloc/init 周围放置一个释放/保留对,但这是很多重复的代码......

A [foo autorelease] 然后保留可能就可以解决问题。

0 投票
2 回答
894 浏览

iphone - 弹出视图在 [super dealloc] 处崩溃应用程序

tableView:didSelectRowAtIndexPath:每次选择一个项目时,我都会在其中创建一个 ViewController-Instance 。有时它可以正常运行很长时间,有时它会EXC_BAD_ACCESS很快崩溃。调试器将问题归咎于[super dealloc];QuestionDetailViewController 中的行。

为什么?我记录了 QuestionDetailViewController retainCount。看起来不错。

QuestionDetailViewController

表视图:didSelectRowAtIndexPath:

0 投票
9 回答
29454 浏览

objective-c - “复制”和“保留”有什么区别?

copy和 和retain有什么不一样NSString

0 投票
1 回答
532 浏览

iphone - NSMutableArray 无法正常工作...(计数不应返回零!)

NSMutableArray 计数在向其中添加对象后返回零,花了一个小时试图找出原因,但我仍然卡住了,所以这把我带到了这里。

基于以下代码的任何想法,问题是什么?

对象“搜索”是在标头集中定义为指针的自定义类,具有保留、非原子属性。

0 投票
1 回答
140 浏览

iphone - init* 函数是否保留传递给它们的内容?

我用以下命令初始化导航控制器:

我想知道导航控制器是否保留了 firstViewController 或者我需要让它保持活动状态。当我释放 firstViewController 时,导航控制器仍然有效。这似乎是错误的。

澄清?

0 投票
3 回答
1826 浏览

iphone - 保留、分配、属性……让你的 Obj-c 生活更轻松的主题!

我编码的越多,我就越迷失......所以我决定为我(和其他人)创建一个完全致力于内存管理的主题,而不是浪费时间理解 obj-c 基础......我将它更新为提出了新的问题!

好的,下面是一些示例:

--- 所以,如果我理解……当你放 self.myArray 时,你告诉 Xcode 使用 getter 或 setter,但是当你只做 myArray 时,你负责一切,对吧?

[已解决] UPDATE1:两者之间是否有区别:

--- 是的,有区别(见上面的评论)

[已解决] UPDATE2:下面的 myArray 是否等于 nil ?

--- Kubi : 是的,它等于 nil。

[已解决] UPDATE3:它是否计入 2 次保留?一个从 self 中保留,一个从 alloc 中保留?这是内存泄漏吗?

--- Kubi:是的,这是内存泄漏!

[已解决] UPDATE4:物业负责一切?不需要分配或释放?

--- 我们这里使用 setter 以便正确保留数组

[已解决] UPDATE5:这两个块相同吗?

--- Kubi : 是的,它们是一样的

谢谢你的时间。

哥提。