问题标签 [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 投票
2 回答
13015 浏览

objective-c - Objective-C 中的 retainCount 是什么?

我有一个UITableView带有UINavigation控制器的第一个屏幕。

在我的第一个屏幕NSLog(@"Home Screen retain Count=%d",[self retainCount]);中,当它viewDidLoad被调用时,它会登录 6。

它是否正确?

0 投票
5 回答
359 浏览

objective-c - 为什么将retainCount 发送到@“Hi”返回-1?

该方法retainCount应该返回一个无符号整数。

那么,为什么[@"Hi" retainCount]返回-1?

0 投票
1 回答
154 浏览

objective-c - 分配给保留属性时为什么不应该释放?

这个问题与这个有关,但更简单。[我想我可能已经接近完成这些愚蠢的问题,可以开始认真做事了:)]。

我有一个retain属性并像这样设置它:

我不明白为什么保留计数为零。navController定义为

该属性不应该将保留计数增加一吗?

0 投票
5 回答
237 浏览

objective-c - Obj-C 内存管理设置方法

我是 Objective-c 的新手,我已经从这里下载了代码。
第 10 章10.01 CarPartsInitxcode 项目文件。

我不清楚的一件事是,setter 方法的内存管理

应该retainCount在程序结束时引擎为 0。

我运行了一些NSLog程序,当程序结束时... retainCountfor 引擎为 1... 它应该变为 0 并被释放吗?或者这是内存泄漏?

0 投票
3 回答
797 浏览

objective-c - 我应该释放 self.view 吗?

我对 UIViewController 中的 self.view 有疑问。

首先,在我的应用程序中,一切都是以编程方式创建的。通常我在 loadView 方法中创建 self.view :

此时self.view的retain count为1。

所以,我的问题是,当我完成视图控制器时,我是否必须释放 self.view?如果是这样,我应该在哪里释放它?

首先十分感谢 :)

0 投票
2 回答
506 浏览

iphone - 基于视图的应用程序 - [window addSubview:viewController.view] 之后的 viewcontroller retainCount;

我有一个基于视图的应用程序,当我检查 dealloc 方法是否正常工作时,我发现它没有...调试和调试,然后使用retainCount,我发现我的视图控制器retaincount 在程序启动时变得疯狂......它很容易复制....

只需启动一个新的基于视图的应用程序模板,并在 didFinishLaunchingWithOptions 中:

我上了控制台:

这是正确的吗?

然后当我按下 iphone 主页按钮关闭应用程序时,dealloc 方法永远不会被调用,我相信因为 viewController 的 retainCount .... 我是对的?

这是苹果的视图应用程序模板……应该可以……不是吗?

有人能解释一下为什么最初的retaincount是2吗??????还有8个???xib 文件为空....

0 投票
1 回答
206 浏览

iphone - NSString 和 retainCount 问题

我在接口部分声明了一个 NSString:

@property (nonatomic, 保留) NSString *filePath;

在 viewDidLoad 我给它一个值,当我试图从我的一个自定义方法中调用它时,它第一次工作,但第二次它崩溃了。在我看来,filePath 在第一次通话期间自动释放。

我尝试了一种不同的方法,在我的方法中我做了这样的事情:

NSString *path = [[[NSString init] alloc] autorelease]; path = [文件路径副本];

这一次似乎有效,但是在检查路径的retainCount时它会不断增加。第一次调用该方法时,retainCount 为 4,但第二次为 2,第三次为 3,依此类推。

好的,我理解 filePath 会增加,因为 [copy] 但为什么还要用于路径变量?为什么在第一种情况下它不起作用?

0 投票
4 回答
323 浏览

objective-c - 目标C:@property(retain) 不调用retain?

我试图跟踪一个内存分配错误,所以我覆盖了我的类的保留和释放方法。我注意到,当将此类的一个实例分配给另一个类的属性时,对象的保留计数增加了,但我重新定义的保留从未被调用。

这怎么可能?(保留)属性是否保留对象而不调用保留?

0 投票
1 回答
774 浏览

iphone - IBOutlet UIWebView 保留计数

我有一个视图控制器,其中我在 IB 中创建了 UIwebView。

这个 webViewretainCount = 2在 vi​​ewDidLoad 中有。为什么?

谢谢

0 投票
2 回答
316 浏览

iphone - iPhone - 保留计数 - 保留计数无明显原因上升

快速提问,希望我只是缺少一些简单的东西。好的,我有一个类拥有指向另一个的指针;MainMenuClass 和 NormalGameClass。在 MainMenuClass 内部,我执行以下操作。

现在,每当没有调用 NormalGameClass 的 dealloc 函数时,我首先注意到一个问题,因此我进行了一些 retainCount 调用,并且由于某种原因,一旦它返回 MainMenu 中的释放函数,它的保留计数为 6。进一步挖掘让我很困惑。NormalGameClass 中 viewDidLoad 之后的第一行,它的 [self retainCount] 是 4。有人知道这里会发生什么吗?我只在 NormalGameClass 上调用过一次 alloc,但它被保留到 6 个?奇怪的是,从来没有过去。感谢您的任何见解。

更新:正在摆弄东西,发现这很尴尬。在 MainMenuClass 中,这是我摆脱 NormalGame 的方法。

现在,通过这个设置,NormalGame 的 dealloc 永远不会被调用。但是,如果我在上面发布的那个之后立即调用 [m_NormalGame release],它会调用 NormalGame 的 dealloc ...两次。=/把我画得一头雾水。