问题标签 [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 - Objective-C 中的内存释放问题
我在下面的项目中有一个真实的例子。我的目标是挑选出最有可能接收短信的电话号码,并且只有那个(电话)号码。当我最后不释放内存时,一切都很好,但是我们不能拥有它,可以吗?我的问题是:在下面的示例中,释放内存的正确方法是在哪里(以及如何)?
iphone - 为什么在 viewDidLoad 中初始化的变量在 Objective-C 中不保留值?
我有一个我写的名为 Location 的类,它只包含一些字符串。我在视图控制器中使用该类的两个实例,当我在 viewDidLoad 中初始化两个变量时,它们对于该方法工作正常,但是当我稍后尝试使用它们时它们为空。我将它们设置为保留属性。我已经测试过它们并且知道它们是为 viewDidLoad 初始化的(我在视图中使用它们的字段)。我是否必须在 Location 类中做一些特别的事情来确保它们不会被释放?当我用不同的方法重新初始化它们时,一切运行顺利。
objective-c - 调用 CFMakeCollectable 后出现意外的保留计数
我有这段代码:
令人惊讶的是,运行代码后,控制台显示以下输出:
retct 之前:1
retct 之后:2147483647
我本来期望:
retct 之前:1
retct 之后:0
难道我做错了什么?我有不正确的期望吗?
cocoa - NSString 分配和保留
只是关于 NSStrings 的一个简单问题,我有一段代码为字符串赋值,具体取决于发现的内容,它是由 substringToIndex 赋值还是由常量字符串 @"0.00" 赋值,是否可以使用
分配,因为它将释放旧值并保留新值?
无法知道在上一次迭代中是否为 var 分配了常量字符串或 substringToIndex 返回值,但有人告诉我在常量字符串上调用 retain & release 是无害的,这是真的吗?
iphone - tableView:cellForRowAtIndexPath 的保留计数:
在 Apple 的示例代码中,tableView:cellForRowAtIndexPath:
a的方法UITableViewDataSource
返回一个保留计数为 1 的单元格;它分配它,但不自动释放它。但是,静态分析器抱怨这违反了 Cocoa 命名约定,因为方法名称不以“new”开头,等等。文档没有提到单元格的预期保留计数。单元格应该有多少保留计数?我应该针对文档提交错误吗?谢谢。
编辑:我查看的示例代码确实自动释放它,我的眼睛不知何故跳过了它。很抱歉浪费您的时间。感谢您的回复。
进一步编辑:如果提问者会因为在问题中使用它的术语而感到兴奋,那么可能应该针对 Clang 提交一个错误。:-)
objective-c - 目标C:@property(retain) 不调用retain?
我试图跟踪一个内存分配错误,所以我覆盖了我的类的保留和释放方法。我注意到,当将此类的一个实例分配给另一个类的属性时,对象的保留计数增加了,但我重新定义的保留从未被调用。
这怎么可能?(保留)属性是否保留对象而不调用保留?
objective-c - 在objective-c中保留C数组
我在 firstClass 中创建 ac 数组(这是在界面中创建的):
然后我转到不同的视图并返回第一个视图,除了我的 c 数组重置为 0,
当我在视图之间来回切换时,如何保留我的数组?
iphone - 我怎样才能确保没有任何东西被自动释放?
我需要一种方法来创建在我调用 release 函数时在我的自定义类启动的整个过程中都可以访问的变量。我需要保留一个 NSDate 和一个 NSString。
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 ...两次。=/把我画得一头雾水。
iphone - NSArray 对象在返回指针后超出范围
我正在尝试在函数中使用以下代码来返回字典对象数组。不幸的是,在返回堆栈中的下一个函数后,可变数组中的所有行都“超出范围”。根据我的理解,数组应该自动保留行(字典)对象,所以即使在返回之后,行指针超出范围,行对象的保留计数仍然应该为 1。我在这里做错了什么?如何构建此数组以使其包含的对象不会被释放?