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

objective-c - Objective-C 中的内存释放问题

我在下面的项目中有一个真实的例子。我的目标是挑选出最有可能接收短信的电话号码,并且只有那个(电话)号码。当我最后不释放内存时,一切都很好,但是我们不能拥有它,可以吗?我的问题是:在下面的示例中,释放内存的正确方法是在哪里(以及如何)?

0 投票
2 回答
939 浏览

iphone - 为什么在 viewDidLoad 中初始化的变量在 Objective-C 中不保留值?

我有一个我写的名为 Location 的类,它只包含一些字符串。我在视图控制器中使用该类的两个实例,当我在 viewDidLoad 中初始化两个变量时,它们对于该方法工作正常,但是当我稍后尝试使用它们时它们为空。我将它们设置为保留属性。我已经测试过它们并且知道它们是为 viewDidLoad 初始化的(我在视图中使用它们的字段)。我是否必须在 Location 类中做一些特别的事情来确保它们不会被释放?当我用不同的方法重新初始化它们时,一切运行顺利。

0 投票
1 回答
201 浏览

objective-c - 调用 CFMakeCollectable 后出现意外的保留计数

我有这段代码:

令人惊讶的是,运行代码后,控制台显示以下输出:

retct 之前:1
retct 之后:2147483647

我本来期望:

retct 之前:1
retct 之后:0

难道我做错了什么?我有不正确的期望吗?

0 投票
1 回答
661 浏览

cocoa - NSString 分配和保留

只是关于 NSStrings 的一个简单问题,我有一段代码为字符串赋值,具体取决于发现的内容,它是由 substringToIndex 赋值还是由常量字符串 @"0.00" 赋值,是否可以使用

分配,因为它将释放旧值并保留新值?

无法知道在上一次迭代中是否为 var 分配了常量字符串或 substringToIndex 返回值,但有人告诉我在常量字符串上调用 retain & release 是无害的,这是真的吗?

0 投票
5 回答
1755 浏览

iphone - tableView:cellForRowAtIndexPath 的保留计数:

在 Apple 的示例代码中,tableView:cellForRowAtIndexPath:a的方法UITableViewDataSource返回一个保留计数为 1 的单元格;它分配它,但不自动释放它。但是,静态分析器抱怨这违反了 Cocoa 命名约定,因为方法名称不以“new”开头,等等。文档没有提到单元格的预期保留计数。单元格应该有多少保留计数?我应该针对文档提交错误吗?谢谢。

编辑:我查看的示例代码确实自动释放它,我的眼睛不知何故跳过了它。很抱歉浪费您的时间。感谢您的回复。

进一步编辑:如果提问者会因为在问题中使用它的术语而感到兴奋,那么可能应该针对 Clang 提交一个错误。:-)

0 投票
4 回答
323 浏览

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

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

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

0 投票
2 回答
495 浏览

objective-c - 在objective-c中保留C数组

我在 firstClass 中创建 ac 数组(这是在界面中创建的):

然后我转到不同的视图并返回第一个视图,除了我的 c 数组重置为 0,

当我在视图之间来回切换时,如何保留我的数组?

0 投票
4 回答
63 浏览

iphone - 我怎样才能确保没有任何东西被自动释放?

我需要一种方法来创建在我调用 release 函数时在我的自定义类启动的整个过程中都可以访问的变量。我需要保留一个 NSDate 和一个 NSString。

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 ...两次。=/把我画得一头雾水。

0 投票
2 回答
581 浏览

iphone - NSArray 对象在返回指针后超出范围

我正在尝试在函数中使用以下代码来返回字典对象数组。不幸的是,在返回堆栈中的下一个函数后,可变数组中的所有行都“超出范围”。根据我的理解,数组应该自动保留行(字典)对象,所以即使在返回之后,行指针超出范围,行对象的保留计数仍然应该为 1。我在这里做错了什么?如何构建此数组以使其包含的对象不会被释放?