问题标签 [autorelease]

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 回答
1702 浏览

objective-c - 释放方法返回的对象

好的,我知道这个问题的答案应该很明显,但我需要朝着正确的方向努力。

我发现自己编写了大量遵循以下模式的方法:

我的问题是,我该如何处理这个对象的释放?显然我不能在方法中释放它。

0 投票
5 回答
1988 浏览

objective-c - 返回通过“便利构造函数”初始化的对象

当实例方法返回一个使用便利构造函数初始化的值时,我是否需要保留该对象,然后在返回中自动释放,以便当便利构造函数的自动释放发生时,它不会删除该对象。

是否会在调用代码之前发布描述并通过保留或其他方式获取所有权?

还是应该这样?

调用代码:

0 投票
3 回答
3375 浏览

objective-c - GNUstep AutoReleasePool 上的 Objective-C 未声明问题

我是 Objective-C 的新手,在 GNUstep 和 MinGW 环境中工作。我正在编译这段代码但有一个错误:

它给出了这样的编译时错误:

'NSAutoReleasePool' 未声明(在此函数中首次使用)

我应该怎么做才能克服这个错误?

0 投票
1 回答
149 浏览

iphone - 释放自动释放对象不会使我的应用程序崩溃,为什么?

为什么当我释放任何自动释放对象时应用程序不会崩溃,或者当自动释放池耗尽时我的应用程序会在一段时间后崩溃?

0 投票
3 回答
2139 浏览

iphone - stringWithContentsOfURL 泄漏内存

如果我告诉 fetchHTML 在单独的线程中被调用,它会更清楚吗?我还在调试控制台中看到了几条消息,例如:

_NSAutoreleaseNoPool():NSCFDictionary 类的对象 0xd92860 自动释放,没有适当的池 - 只是泄漏

_NSAutoreleaseNoPool():NSCFString 类的对象 0xd92800 自动释放,没有适当的池 - 只是泄漏

我是 iPhone 应用程序开发、Objective-C 的新手,但对编程或 C/C++ 并不陌生。我正在使用泄漏性能工具,它显示了许多泄漏。这是一个 10.5 kb 的泄漏,它发生在以下行:

下面的堆栈跟踪是:

有谁知道为什么这一定会发生。我的印象是我在这里得到了一个自动释放对象,我可以在不调用保留的情况下将它返回给调用者。我没有使用 xml 对象存储在实例变量中,只是为了处理。

这是功能代码:

0 投票
1 回答
1274 浏览

objective-c - (嵌套)自动释放池的范围是什么?

我正在 for 循环中创建一个自动释放池(在方法 A 中)。在循环的每次迭代中,我都会调用另一个方法(方法 B)。方法 B 将一个自动释放的对象返回给方法 A。如果我在方法 A 的 for 循环中耗尽池,是否会释放从方法 B 发送的对象?

谢谢!

0 投票
4 回答
225 浏览

objective-c - 我的代码要么泄漏并工作,要么不泄漏并崩溃。这似乎不是自动释放问题

在我完成了游戏中困难部分的编码后,我发现了一些内存管理错误。

objects 是一个包含自定义类的 NSMutableArray。

我后来使用了这个功能。

如果我不在第一个函数中自动释放,则该应用程序可以正常工作。如果我这样做了,那么我会尝试访问一个解除分配的对象([MatchObject 位置])。

怎么了?!

0 投票
2 回答
4054 浏览

objective-c - 如何知道一个对象是否被自动释放?

我对某些对象在我不知情的情况下被自动释放感到有点恼火。他们可能是一件好事,但如果他们是,我想知道。文档没有说明哪些方法可以自动释放对象,所以我通常会测试我的前进方式,在我看来这很愚蠢。例如,[NSDate date] 自动释放对象,[NSArray arrayWithObjects:...] 也是如此。如果没有文件告诉你,你怎么知道?

我开始看到一种模式,尽管像这样的方法,使用静态函数创建对象的方法,总是返回自动释放的对象。这总是正确的吗?

0 投票
2 回答
160 浏览

iphone - Iphone 打开 gl es 应用程序和自动释放池

所以我在 iphone 上创建了我的第一个 opengl es 应用程序。我想自动释放一个对象,那时我注意到我似乎无法找到自动释放池的位置。

1) 是否已经在 iphone opengl es 应用程序中为我创建了自动释放池?2) 如果已经为我创建了它,那么池多久会被排干?

0 投票
1 回答
255 浏览

objective-c - 如何找到带有自动释放消息的对象?

释放自动释放池时,我的应用程序崩溃。原因似乎是具有自动释放消息的对象在释放池之前的某个时间发送了释放消息,因此应用程序会因已释放的对象而崩溃。

因此,我想找出哪些对象有待处理的自动释放消息,以便我可以平衡该对象的保留 .. 释放/自动释放消息