问题标签 [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.
iphone - 我释放分配或保留的对象多少次?
我正在制作一款 iPhone 游戏。我想释放所有已分配或保留的对象。在dealloc
函数中,我释放了所有此类对象,但后来我意识到有时我最终会释放尚未分配的对象。所以我想我需要retainCount
在发布它之前检查它是否大于零。
我的问题是:
我是否只检查 是否retainCount
大于零然后释放它?
或者
我应该像它一样多次释放它吗retainCount
谢谢你的帮助!
objective-c - 调用方法的方法:自动释放的基础?
就在我以为我已经完全理解了这个话题时,我又回到了基础。
我有一个实例化自动释放对象的方法,使用(例如)stringWithFormat
:
然后我从另一个方法和另一个方法调用这个方法,每次都返回这个 autoreleasedNSString
并在层次结构的每个级别。代码工作正常,并且NSString
实例在层次结构的每个级别都是完整的。
我认为由于实例是自动释放的,它可能会突然retainCount
在调用堆栈中的任何点以 0 结束(即,其中一种方法将在释放的对象上工作)。我不能依赖这个对象是真的吗?
编辑:我意识到这个问题并不太清楚。对不起。我是说:
ios - 由于保留计数而释放对象
我有太多次发布视图的问题。虽然理论上很简单,因为我将 uiview 移动到 uiview,它是 uiview 的一个子类并且被动画等等它不是我可以轻易修复的东西。它只会在某些条件下崩溃 10%,即使在这些条件下也只有 30% 的时间。
所以换句话说,它有点复杂。有时在我的 dealloc 方法中,此 UIView 的保留计数已经为 1(在释放视图时被释放),因此不应再次释放。所以我做的是这样的:
通常会调用与发布的崩溃一致的方法,但并非总是如此,而且当我有时期望它崩溃时,它几乎会发生。我已经用这段代码检查了泄漏,它永远不会泄漏。
现在的实际问题......由于保留计数而释放某些东西是错误的吗?我已经尝试了许多不同的方法来解决这个问题,到目前为止,这是唯一可靠且不泄漏的方法。
编辑:如果没有,那么将一个 UIView 复制到另一个 UIView 的更好方法是什么?
我试过先释放 mainView 然后在 newView 上调用 copy 但这会崩溃。上面的方法也很完美,除了保留计数有时比预期的低 1,即使它从未在代码中的其他任何地方发布。
objective-c - Objective-C 发布
我在 DNS.h 中有这个类
然后在实现文件 DNS.m 中有一个方法,我释放它,我得到 exec bad access memory 错误。这是方法,它符合 NSXMLParserDelegate 协议
也许第一个想法是nil,但实际上我在检查是否为nil的方法中使用它,然后释放它。
它与保留属性有关吗?谢谢。
iphone - 将@Property UISwitch 添加到 TableView 会导致 RetainCount 问题
我正在使用 UISwitchs 和 UITextFields 执行此操作...
我已在头文件中将 UISwitch 声明为属性,因为我想在我的类中通过几种不同的方法访问它的值。
我正在使用以下代码将 UISwitch 添加到我的 TableViewCell 之一:
事实上,retainCounts 无处不在。将单元格放在屏幕上时,mySwitch Retain 为 2,每次我点击开关时,保留计数都会增加,直到达到 4,然后它似乎就停留在那里。
显然我错过了一些东西。如果有人能指出我正确的方向,将不胜感激。
objective-c - 在目标 C 中保留计数返回 -1
我是目标 C 的新手,我有一个 NSMutableArray,里面有 3 个对象,然后我尝试打印数组的 retainCount。为什么最终的 retainCount 返回 -1?谢谢
来自控制台的结果:
objective-c - 在单元格的 contentView 上调用“子视图”方法会增加保留计数
我不知道这里发生了什么,但我的 init 方法中有以下代码:
我知道我应该释放 game1CustomEntityInfoControl ,因为超级视图保留了该对象,但暂时保留它。
然后在我的 layoutSubviews 方法中,我有:
这是输出:
2010-10-24 15:14:08.598 Sangaku[8592:207] 在分配前在 init 中保留计数:0
2010-10-24 15:14:08.603 Sangaku[8592:207] 在分配后的 init 中保留计数:1
2010-10-24 15:14:08.611 Sangaku[8592:207] 添加到 superview 后在 init 中保留计数:2
2010-10-24 15:14:08.616 Sangaku[8592:207] 一进入 layoutSubviews 就保留计数:2
2010-10-24 15:14:08.621 Sangaku[8592:207] 在 contentView 上调用子视图后在 layoutSubviews 中保留计数:3
查看输出的最后一行。保留计数是如何变为 3 的?子视图是否在内部执行一些作为自动释放返回的分配?
谢谢
iphone - 由 NavigationController 推送时 ViewController 的保留计数 +4
我想知道为什么viewController 的retainCount 在推入Navigationcontroller 的堆栈时会提高4,例如从tableView 中。创建了哪些依赖项?
iphone - Objective-C 确定哪些对象保留另一个对象
我在 iPhone 上遇到了一些内存泄漏问题(想象一下),并且我有一个保留计数为 10 的自定义对象。
有什么方法可以知道哪些代码触发了特定对象实例的保留计数增加?如果这很重要,我正在使用 GHUnit。
objective-c - NSMutableArray 删除对象增加引用计数?
我有一些导致 iOS 静态库内存泄漏的代码。下面是 Instruments 中一个对象的生命周期:
这是代码[AbstractColumn addColumnListener:]
而对于[AbstractColumn removeColumnListener:]
当我从 中删除对象时NSMutableArray
,它似乎增加了保留计数而不是减少它。有没有其他人遇到过这个问题并且知道解决方案?