问题标签 [nsautoreleasepool]
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 - 手动释放 NSValue
是否可以使用指向 C 结构的指针实例化 NSValue 而无需创建自动释放池?目前,我这样做:
但这是由自动释放池释放的。我想控制它并能够在我想要的时候释放它。这可能吗?我试过这个:
但由于某种原因它正在崩溃。还有什么方法可以立即释放吗?谢谢!
iphone - cellForRowAtIndexPath 中的内存泄漏:
给定 indexPath,我想获得对相关单元格的引用以删除复选标记。我以为我可以为此使用 cellForRowAtIndexPath ,但我收到消息:
__NSAutoreleaseNoPool():类 UITableView 的对象 0x685a600 自动释放,没有适当的池 - 只是泄漏
即使是这样的简单行:
所以,这不仅仅是返回一个指向单元格的指针,对吧?也许我误解了这种方法的用途。是否可以简单地获取对单元格的引用来更改附件视图?谢谢!
iphone - 在 iOS 4.0 上释放 Autoreleasepool 崩溃(以及在 4.1 上......)
我想知道是什么原因造成的。我的代码中有几个使用 performSelectorInBackground 调用的方法。在这些方法中的每一个中,我都有一个 Autoreleasepool,它在开始时被分配/初始化,并在方法结束时被释放。
这在 iOS 3.1.3 / 3.2 / 4.2 / 4.2.1 上完美运行,但它在 iOS 4.0 上致命地崩溃,并在调用 [myPool release] 后发生 EXC_BAD_ACCESS 异常。
在我注意到这种奇怪的行为之后,我正在考虑重写我的部分代码并让我的应用程序“不那么并行”,以防客户端操作系统是 4.0。
在我这样做之后,应用程序崩溃的下一个点是在 Apples Reachability“框架”的 ReachabilityCallback-Method 中。
好吧,现在我不太确定该怎么做。
我在线程方法中所做的事情是非常简单的 xml 解析(没有可可调用或会影响 UI 的东西)。在每个方法完成后,它会发布一个通知,协调线程正在侦听,一旦所有并行化方法完成,协调线程就会调用视图控制器等......
我完全不知道是什么导致了这种奇怪的行为。特别是因为 Apples Code 也失败了。
任何帮助是极大的赞赏!
谢谢,山姆
iphone - 如何为 nsoperationqueue 正确使用 autoreleasepool
我有一个正在重构的应用程序,我刚刚实现了多线程,以便 UI 可以运行得更流畅。在 iphone 模拟器中,我没有任何泄漏,但在运行 iOS 4.2 的 iPhone 3G 上进行测试时,我得到了内存泄漏。我已经做了很多寻找使用操作队列实现自动释放池的正确方法,我们将不胜感激。
我在我的视图控制器中创建了一个 nsoperationqueue
iphone - NSAutoReleasePool 泄漏
谁能告诉我为什么 NSAutoreleasePool 在这段代码中泄漏。我正在使用仪器来检查泄漏并且此代码以某种方式泄漏。谁能引导我走向正确的方向。我在其他地方有完全相同的代码并且运行良好。
iphone - 使用 NSOperationQueue 并尝试更改滑块/选择器等时在 iphone 设备上遇到大量泄漏
使用 NSOperationQueue 并尝试更改滑块/选择器等时,在 iphone 设备上遇到大量泄漏。
我可以毫无问题地更改标签,但是如果我尝试更改在界面构建器上创建的滑块或选择器,我会得到这些泄漏。
下面的代码
objective-c - 在一个线程中创建并在objective-C中传递给另一个线程的自动释放对象
我有一个对象的方法,它创建对象,然后将其传递给另一个线程中另一个对象的方法,如下所示:
在方法中,我立即保留对象,假设它会被创建者以某种方式释放。我的问题是:如何让 MyClass 正确释放该对象?这是正确的方法吗?
我的解决方案是在方法中手动释放对象。无论如何,我看到泄漏分析器仍然将其识别为泄漏,并且似乎不是 Apple 推荐的,因为所有者有责任释放该对象。
你能解释一下处理这种情况的正确方法吗?谢谢!
objective-c - Objective-C:在一个线程中分配并在另一个线程中释放
我在我的主线程中这样做:
在加载动画中:
在主线程中我释放它:
现在我想问一下关于内存管理是否可以。
iphone - iPhone - 如果在自动释放后保留会发生什么?
你知道如果我保留一个自动释放的对象会发生什么吗?它会被释放还是保留获胜?
iphone - 崩溃-》收藏在枚举时发生了变异。”
目标是“在 viewWillAppear 开始时启动一个微调器图形,在显示 tableview 之前加载数据”,这样用户就不会想知道为什么在看到 table 之前会有延迟。即 UIActivityIndicatorView 已添加到窗口中,我只想设置 alpha 以隐藏/显示它。
在继续加载/计算 viewWillAppear 中的内容之前,我在启动线程以确保显示“旋转齿轮”图像视图(标签 = 333)时收到这个奇怪的错误。
我不会在每次调用 [appdel addGearz] 和 [appdel removeGearz] 时都得到它,这两种情况都会发生,而且是随机的。它可能在 2 viewWillAppears 之后或 15 之后发生。如果我注释掉设置 alpha 的行,一切正常。
一个典型的 viewWillAppear 看起来像这样,
如果没有注释掉带有 .alpha 的行,这是崩溃的代码
我用过别人的代码,所以......你能看到什么明显的东西吗?当然,我必须能够在线程中更改 UIViews 的 alpha 吗?我是否需要在某些“更改此代码时停止枚举”代码中“嵌入” alpha 更改?
我通过将 alpha-change-line 移动到池分配上方或 [池排水] 下方使其不会崩溃,但是随后我收到了很多“自动释放而没有适当的池 - 只是泄漏”的消息。
显然,我对这个线程代码有些不理解。