问题标签 [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.
objective-c - 复制 NSMutableString 实例返回 -1 的 retainCount
有人可以解释为什么最后一行打印出-1吗?当在 NSMutableString 上调用 copy 时会发生这种情况,我希望 strFour 的 returnCount 为 1,因为应该返回一个不可变的副本。
非常感谢。
objective-c - NSString 保留复制问题
我在这里看到了一些关于使用字符串保留或复制的问题的帖子。我仍然无法完全理解差异或重要性。
就我而言,目前我有一个类,其中包含大量 nsstrings 来保存字符串。
我希望这个类只被实例化一次,并且我希望它的 nsstring 变量根据在表视图中单击的索引而改变。
我是否正确地说,如果我选择使用保留,那么每次我在我的 tableview 单击上设置它们的值时,我的 nsstrings 都会被覆盖,如果我选择复制,我会以某种方式有每个字符串的 2 个实例......?
对不起……我完全不明白
iphone - 函数调用后保留计数。我应该担心吗?
在程序泄漏之前,我通常不会检查保留计数。但是今天(我不知道)我检查了保留计数,现在我很困惑。
我不明白这个。因为我不分配 strErrorMessage,所以我不必按仪式释放它?
谁拥有 strErrorMessage 的所有权。
我必须在这里释放 strError 吗?(我认为不需要,但是保留计数 3 是什么)。
iphone - 发送到解除分配的实例
每当我将视图控制器推送到我的堆栈上,然后将其弹出时,我都会收到此错误:
它似乎发生在dealloc
被弹出的视图控制器上调用之后,并且仅适用于该视图控制器。我确信 CALayer 与视图本身有关,因为我不使用它们。
有任何想法吗?
编辑:这是回溯
objective-c - 释放和保留
假设我执行以下操作(foo 从某个对象开始):
只要我不重新分配 foo,最后我仍然会拥有相同的 foo,对吗?在 //STUFF 期间我不会冒失去 foo 的风险,是吗?
我想我正在确保我对发布的理解是正确的。如果我释放 foo,它实际上不会消失,直到它的所有句柄都消失了。换句话说,foo 必须分配给 //STUFF 中的某个其他对象,或者 foo 必须超出 //STUFF 中的范围(并且可能创建了一个新的 foo)才能获得实际的原始 foo要删除的对象,对吗?
编辑动机:
我想这样做的原因是可以说我有以下 switch 语句:
在切换之前释放 foo 并在结束时保留它是有意义的。除了案例 3。所以,我在想如果可以安全地执行我建议的操作,它可能会使代码更简单。
当然,我可以在每个 alloc/init 周围放置一个释放/保留对,但这是很多重复的代码......
A [foo autorelease] 然后保留可能就可以解决问题。
iphone - 弹出视图在 [super dealloc] 处崩溃应用程序
tableView:didSelectRowAtIndexPath:
每次选择一个项目时,我都会在其中创建一个 ViewController-Instance 。有时它可以正常运行很长时间,有时它会EXC_BAD_ACCESS
很快崩溃。调试器将问题归咎于[super dealloc];
QuestionDetailViewController 中的行。
为什么?我记录了 QuestionDetailViewController retainCount。看起来不错。
QuestionDetailViewController
表视图:didSelectRowAtIndexPath:
objective-c - “复制”和“保留”有什么区别?
copy
和 和retain
有什么不一样NSString
?
iphone - NSMutableArray 无法正常工作...(计数不应返回零!)
NSMutableArray 计数在向其中添加对象后返回零,花了一个小时试图找出原因,但我仍然卡住了,所以这把我带到了这里。
基于以下代码的任何想法,问题是什么?
对象“搜索”是在标头集中定义为指针的自定义类,具有保留、非原子属性。
iphone - init* 函数是否保留传递给它们的内容?
我用以下命令初始化导航控制器:
我想知道导航控制器是否保留了 firstViewController 或者我需要让它保持活动状态。当我释放 firstViewController 时,导航控制器仍然有效。这似乎是错误的。
澄清?
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 : 是的,它们是一样的
谢谢你的时间。
哥提。