问题标签 [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 回答
7088 浏览

iphone - addSubview 增量保留计数吗?

我已经对其进行了测试,看起来确实如此。所以我的问题是,它是否总是增加保留计数。

所以每次我做这样的事情:

我真的在泄漏内存吗?

我有一个全局属性,我用这段代码@property (nonatomic, retain) UILabel *ingredientsTextLabel;实例化了它:viewDidLoad

我只是命名了属性,在我的标题中没有属性,所以没有 getter 和 setter。在我的viewDidLoad

现在我认为这会起作用,然后在 dealloc 中我可以释放ingredientsTextLabel,但保留计数是 2,所以我还需要在 addSubview 之后释放 i?我没有意识到会发生这种情况!:(

0 投票
3 回答
2789 浏览

objective-c - retainCount 增加或减少的条件

我读过对象保留计数,并且当我们分配第二个值(或对象)时它可以增加。

谁能给我一个关于 retainCount 增加或减少的基本条件的想法(没有 retain , alloc 和 release)......

0 投票
2 回答
88 浏览

iphone - 我在同一函数中只有一个分配的对象有五个分配

我正在编写一个仅在 popOver 中显示菜单(由 tableView 组成)的函数。

这是源代码:

//此时retain count为1

我遇到的问题是用于加载 tableview 的内存永远不会被释放。我的应用程序在内存中不断增长,直到崩溃。

为什么如果我只为 searchNav 分配一次,在将其分配给 popOver 后,retin 计数为 5?

请问有什么帮助吗?

0 投票
3 回答
475 浏览

iphone - Objective-c - 当我将视图更改为零时保留计数

我在一个视图控制器中声明了一个 UIImage 和一个 UIImage 视图,如下所示:

在 .h 文件中:

在 .m 文件中:

在另一个视图中,我设置了它的值:

在该方法中,itemImageView 的保留计数为 2。

但是当我回到放置属性和合成的视图时,保留计数为 0,我无法访问该对象。

知道发生了什么吗?

0 投票
2 回答
159 浏览

iphone - 实例变量不可访问

这里有严重的问题......如果我尝试 NSLog 我的自定义对象的实例变量,我会得到 ECX_BAD_ACCESS。在我的 ViewController 中调用以下函数,payload保存从 url 中提取的字符串数据。

到现在为止还挺好。initWithWithVCard 函数如下,theVCardtheVCardN@implementation 中定义,在(.h) 中也设置为@property (nonatomic, retain):

如果我theVCardN在我的 ViewControlleraVCardViewController中访问对象,那么ViewDidLoad一切都会像魅力一样。我用该对象的数据设置了一些标签。

如果然后我尝试theVCardN从连接到 View 中的按钮的 IBAction 调用的函数中访问实例变量,我会在调试器控制台上收到 EXC_BAD_ACCESS 错误。尝试从实例变量中提取数据的函数如下:

调用 NSLog 之前的 RetainCountertheVCardN输出“1”。然后 NSLog 行在调试器控制台中返回 EXC_BAD_ACCESS。

任何的想法 ?

0 投票
1 回答
813 浏览

iphone - copyWithZone 返回值所有权和保留计数

我在苹果文档中读到了 copyWithZone :

“返回的对象由负责释放它的发送者隐式保留”。

所以如果我写这个:

我打电话给:

obj保留吗?如果我不设置自动释放,保留计数怎么办?

0 投票
11 回答
24693 浏览

objective-c - 何时使用 -retainCount?

我想知道-retainCount到目前为止您在什么情况下使用,以及最终使用它可能发生的问题。

谢谢。

0 投票
1 回答
901 浏览

iphone - 为什么保留计数如此之高?内存管理

我一直在回顾我的应用程序,试图处理所有内存问题并阅读内存管理。我开始使用 [object retainCount] 来跟踪我的内存分配。这是值得信任的,因为我一直发现计数真的很奇怪吗?

有人可以解释以下内容:

请记住,应用程序委托和空的 mainViewController 没有区别。initWithRootViewController 导致计数上升,但我没有看到另一种添加方法....

这是日志~

2011-01-17 19:47:21.278 ANA[5653:207] 3
2011-01-17 19:47:21.282 ANA[5653:207] 4
2011-01-17 19:47:21.286 ANA[5653:207] 7
2011-01-17 19:47:21.287 ANA[5653:207] 12
2011-01-17 19:47:21.301 ANA[5653:207] Load View

我不明白为什么更改这些属性或引用 navigationController 会导致保留计数激增。

我在没有自动释放和手动释放的情况下完成了它,但结果是一样的。基本上我不明白,想知道retainCount命令是否可靠,因为如果我不能理解这一点,我认为我无法在其他地方调试任何内存问题......

0 投票
3 回答
1760 浏览

iphone - 添加没有navigationController的子视图时正确释放ViewController

将 ViewController.view 添加为不在导航控制器上的子视图时,我经常遇到的问题是无法正确创建和销毁 ViewController。

例如:

如果它是一个无控制器视图并且没有用户必须与之交互的 UIControls,那效果很好。但是向该视图的视图控制器发送消息会导致EXEC_BAD_ACCESS因为它们不再在内存中。

这在发送消息时有效,但它是内存泄漏并被静态分析器捕获。

将其设置为当前视图控制器的属性有时会起作用。但是,如果我需要创建一个数量未知的 MyViewController 并将它们添加到 UIScrollView 之类的东西中,那也行不通。

如果 myTmpViewController 有用户交互或类似的东西,仍然会崩溃。如何添加它并正确释放它?

0 投票
6 回答
645 浏览

objective-c - 尽管故意过度释放,对象的保留计数从未低于 1

我正在检查某些对象的保留计数

似乎我能得到的最低值是“r = 1”,即使我故意添加额外的“释放”调用

即使我尝试将“release”和“NSLog”测试代码放在对象的 dealloc 方法中,“r = 1”限制仍然有效。

Cocoa 运行时似乎忽略了我在“r = 1”之前的额外版本,然后在示例程序的最后(没有 GC)以“EXC_BAD_ACCESS”崩溃。

我唯一的解释(猜测)是我们需要 r >= 1 才能访问对象。并且 Cocoa 运行时只是试图避免让任何对象的保留计数过早地变为 0。

如果我错了,有人可以确认或纠正我吗?