问题标签 [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.

0 投票
2 回答
1123 浏览

iphone - iPhone:自定义自动释放池崩溃

当我尝试在 HTTP 请求中发布图像时,我的应用程序崩溃了。我正在尝试将图像上传到服务器。崩溃似乎与我的自动释放池有关,因为崩溃被困在[pool release] 消息中。

这是崩溃报告:

崩溃报告说以下代码的最后一行是崩溃点。(第 266 行)

我不明白是什么导致了崩溃。

0 投票
4 回答
3724 浏览

iphone - iphone iOS4破解应用

我有一个应用程序自一年多前推出以来一直运行良好。

我最初使用 iphone iOS 2.2.1 开发它并测试并一直销售它直到 3.2 没有问题。

现在它无法与 iOS4 一起启动。

该应用程序对 UIPickerView 使用了非标准大小(我认为这不是问题,但只需提及它,因为您会在控制台输出中看到一些抱怨)。它还给出了以前未报告的NSAutoreleasePool警告。

但罪魁祸首似乎是在将界面调整为新的 iphone 屏幕分辨率时(至少我从控制台得到的)

我知道我必须自己做一些研究,但 iOS4 推出的时间太少了,我非常专注于学习和开发我的第一个 android 应用程序(所以我没有测试这个特定的代码,一年后这个应用程序只卖一天几份),我认为在这里询问是否有人有一些信息或已经遇到过它并没有害处。

首先,这是使用 XCODE 3.2.3 和 BASE SDK 3.2 构建和运行时的控制台输出,运行没有问题

2010-06-22 23:25:55.619 metalandmaterials[82956:207] ******* 可访问性状态已更改:2010-06-22 23:25:55.710 metalandmaterials[82956:207] ****** **** 正在加载 AX:xxxxxxxxx

但是尝试使用 iOS4 运行它会带来这种美感:

2010-06-22 23:15:52.488 metalandmaterials[80149:207] ******* 可访问性状态已更改:
2010-06-22 23:15:52.546 metalandmaterials[80149:207] ****** **** 正在加载 AX:XXXXXXX ************
2010-06-22 23:15:53.003 metalandmaterials[80149:207] * -[NSAutoreleasePool release]: 这个池已经被释放,不要排干它(双释放)。
2010-06-22 23:15:53.005 metalandmaterials[80149:207] *
-[NSAutoreleasePool release]:这个池已经被释放,不要排空它(双释放)。
2010-06-22 23:15:53.008 金属和材料[80149:207]-[UIPickerView setFrame:]:无效高度值 50.0 固定到 162.0

就在这儿![UIIageView 比例]

2010-06-22 23:15:53.011 metalandmaterials[80149:207]-[UIImageView scale]:无法识别的选择器发送到实例 0x5ac47a0
2010-06-22 23:15:53.013 metalandmaterials[80149:207] *** 应用程序到期终止未捕获的异常 'NSInvalidArgumentException',原因:'-[UIImageView scale]: unrecognized selector sent to instance 0x5ac47a0'

在第一掷调用堆栈:

0的CoreFoundation 0x025f5919 exceptionPreprocess + 185
1周libobjc.A.dylib 0x027435de objc_exception_throw + 47
2的CoreFoundation 0x025f742b - [NSObject的(NSObject的)doesNotRecognizeSelector:] + 187
3的CoreFoundation 0x02567116 ___forwarding_
+ 966
4的CoreFoundation 0x02566cd2 _CF_forwarding_prep_0 + 50
5 UIKit 0x0039a8e3 -[UIImageView setImage:] + 250
6 UIKit 0x0039b63e -[UIImageView initWithImage:] + 161
7 UIKit的0x05f286ce - [UIImageViewAccessibility(SafeCategory)initWithImage:] + 70个
8 metalsandmaterials 0x0000bf09 - [TVCResults INIT] + 1841
9个metalsandmaterials 0x00002b8c - [UIVCalcHolder INIT] + 258
个10 metalsandmaterials 0x00002758 - [CalcTestAppDelegate的applicationDidFinishLaunching:] + 649
11的UIKit 0x002d759c - [ UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1252
12 UIKit 0x002d99a1 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 346
13 UIKit的0x002e3452 - [UIApplication的的handleEvent:withNewEvent:] + 1958
14的UIKit 0x002dc074 - [UIApplication的的SendEvent:] + 71
15的UIKit 0x002e0ac4 _UIApplicationHandleEvent + 7495
16个GraphicsServices 0x02de1afa PurpleEventCallback + 1578
17的CoreFoundation 0x025d6dc4 CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION + 52
18的CoreFoundation 0x02537737 __CFRunLoopDoSource1 + 215
19的CoreFoundation 0x025349c3 __CFRunLoopRun + 979
20 Corefoundation 0x02534280 Cfrunlooprun特价+ 208
21 Corefoundation 0x025341A1 CfrunloopruninMode + 97
22 uikit 0x002d9226 - [Uiapplication _run] + 625
23 uikit 0x002e4b58 Uiapplicationmain + 1160
24 metalsandmaterial 0x000024ac Main + 230
25 metalsandmaterial 0x000023bd start + 53
26 ??? 0x00000001 0x0 + 1
) 在抛出“NSException”实例后调用终止
程序接收到的信号:“SIGABRT”。
杀杀
_

那么这个scale方法对uiimageview来说是新的吗?为什么它不起作用?有没有人遇到过这个?

非常感谢任何帮助

最好的问候
大卫

0 投票
1 回答
125 浏览

iphone - 使用自动释放上下文之外的对象

在 Apple 开发人员关于 Autorelease 池的网站文章中的“保证基金会所有权政策”下 http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmAutoreleasePools.html#//apple_ref/doc /uid/20000047-997594,他们谈论将对象的生命周期延长到自动释放池之外。

有人可以给我一个可以使用这个概念的情况吗?

0 投票
1 回答
444 浏览

objective-c - Objective-c 中 NSAutoreleasePool 中的对象

有没有办法知道在 NSAutoreleasePool 中标记为释放的对象。

0 投票
3 回答
8887 浏览

iphone - -[CALayer retain]:消息发送到释放的实例

我正在开发一个 iphone 应用程序,当我打开我的 NSZombieEnabled 时,我经常会因错误而崩溃:

当我在视图控制器中推送或弹出视图时,它总是会出现。有时之前会出现这个错误:

这是什么意思?任何人都有线索或遇到过这个问题?

非常感谢您的帮助!

罗曼

0 投票
3 回答
864 浏览

iphone - iPhone 上的 NSAutoreleasePool 问题

我有一个小的 iPhone 应用程序,在第一个视图上有一个按钮。当我选择这个按钮时,我会加载我的新视图,上面有一个图像。我目前正在使用以下代码在单独的线程上从在线源加载图像,同时允许用户继续控制应用程序:

这是从新视图的 init 中的这行代码调用的:

现在这工作正常(ish),但如果我关闭新视图,然后快速连续(或在某些情况下只是之后)再次加载新视图,它将被经典的 EXC_BAD_ACCESS 炸毁。我确定这是由于线程池中的代码造成的,但是任何人都可以看到为什么会这样吗?

谢谢

0 投票
1 回答
1450 浏览

objective-c - 使用 NSAutoreleasePool 从线程方法返回后 NSRunLoop 出错

从设置了 NSAutoreleasePool 的线程方法返回后,我收到 EXC_BAD_ACCESS 错误。失败的地方是调用 NSRunLoop。我正在尝试包装一个主要由一个类(我们称其为 Connection 类)及其委托组成的第 3 方库,以便它与客户端类同步而不是异步运行。名为 NFCConnection 的包装类符合委托协议,并在 NFCConnection 的构造函数中传递给 Connection 的 setDelegate 方法。

我创建新线程的方法如下:

线程方法 doSomethingImportant 如下所示:

对 Connection 的 somethingImportant 的调用将导致在主线程上调用委托方法之一。在每个回调方法中,我将变量 callBackMethod 设置为 NO,导致方法 A 中的 while 循环退出。该错误发生在 doSomethingImportant 返回之后但在调用其中一个委托方法之前。EXC_BAD_ACCESS 错误发生在调用 NSRunLoop 时。这是堆栈跟踪的一部分:

现在,如果我忽略在 doSomethingImportant 中设置自动释放池,我可以完全防止错误发生,并且包装的 API 似乎可以同步工作。但是,如果我要这样做,那么控制台中会打印以下内容:

上面的这些消息是由 Connection 类实例中没有释放的东西引起的吗?我正在创建一个 NSDate 但不是需要发布的实例。与 NSTimer 相同。

我试图通过设置 NSAutoreleasePool 来做正确的事情,但看起来我做错了什么。但是,我不知道那可能是什么。非常感谢任何帮助!

富有的

0 投票
1 回答
118 浏览

objective-c - 自动释放池中的对象数

有没有办法查询驻留在给定 NSAutoreleasePool 中的对象数量?

这对我来说非常重要,因为在我的游戏中有几个循环,我需要知道我自动释放我的自动释放对象的效率。

0 投票
1 回答
861 浏览

objective-c - NSAutoreleasePool

我排干了一个自动释放池。警告*** attempt to pop an unknown autorelease pool意味着自动释放池是用不同的方法创建和排出的——这很好。

但这是否意味着这样的水池没有被耗尽?有解决办法吗?

0 投票
1 回答
240 浏览

iphone - 是什么让 NSArray 访问如此缓慢?

我正在为 iPhone 应用程序制作图形效果,该应用程序模拟旧演示场景中的低分辨率等离子效果。我在屏幕上有 600 个方块正在尽快更新。由于我正在使用 CoreGraphics(目前),我可以获得非常稳定的 11FPS 而不会冻结——

但是当我尝试添加一个简单的 NSArray 查找时,iPhone 以及模拟器每隔几秒就会冻结几秒钟。我已经在仪器中运行了它,它说有泄漏——泄漏与 NSAutoReleasePool 有关,但这并没有真正帮助。(我在每个更新帧的开头创建一个 NSAutoReleasePool 并在最后排空池。)

通过消除过程,我已经能够将其缩小到导致减速的一条线。这一行发生在每帧更新的 600 个块精灵中:

...其中调色板是精灵中的 NSArray 属性,并包含我创建的 UIColor 对象的列表。此 UIColor 对象数组仅在应用启动时创建一次,并且所有精灵都使用相同的数组。

有人有想法么?