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

iphone - 内存分配问题,设备 iOS SDK 4.1 崩溃(线程 0 崩溃)

我有两个问题

1)我的应用程序在前几次运行时在设备上运行良好。然后它在第一个屏幕弹出(Tab BAr)后崩溃。如果我将设备连接到我的 MAC,然后运行设备应用程序,它就可以工作(不是调试模式)。

我检查了崩溃日志,它崩溃了“EXC_BAD_ACCESS(SIGSEGV)”的cos并且Thread0崩溃了。错误是NSAutorelease释放了一个释放的对象。

2)我在模拟器上使用仪器运行应用程序。它在这个函数调用上显示了很多泄漏。这是一个示例代码。当我使用 Instruments 运行它时,它会在“setObject”行显示泄漏。

//class A- NSObject 的子类

/// B类

为什么它在“setObject”处泄漏?我正在正确地释放一切,对吗?唯一的事情是 [NSString stringWithFormat:] 但那是自动释放对吗?

这真让我抓狂?

这两个问题有关系吗??PS:它不会在sim卡上崩溃,奇怪的是即使我将我的设备连接到我的MAC然后在设备上测试它也不会崩溃(不是调试,直接点击设备上的应用程序)

编辑:

}

0 投票
1 回答
383 浏览

iphone - NSOperation(s) 仅在 iOS 3 设备上泄漏

我有一些处理 CoreData 导入的 NSOperations 子类。我相信我已经勾选了大多数非主线程问题

  • main我在方法中创建了自己的自动释放池
  • NSManagedObjectContext我为每个操作创建一个

这些操作被加载到一个 NSOperationQueue 中,最大并发操作数设置为 1。

该代码在 iOS 4.0.1 上完美运行,但在 iOS 3.1.3 设备上会收到大量日志消息,如下所示

NSOperation 子类主方法

__lookup:inContext:方法_

大多数其他方法的实例方法,即threadContext看起来与__lookup:inContext:方法相似。我知道我不会为实例方法创建 Autorelease 池,但根据我对 autorelease 工作原理的理解,只要这些方法仅在 main 方法内部调用,在NSAutoreleasePool创建之后,最外层池应该使用。我懒惰地创建诸如 NSManagedObjectContext 之类的对象,并且在大多数情况下不使用该start方法

0 投票
1 回答
132 浏览

objective-c - iPad: NSAutoreleasePool with animation, and release confusion

I have two related questions concerning NSAutoreleasePool.

  1. Between declaring the pool and draining it, can I use animation? Example

    /li>
  2. If I alloc something after the pool is declared, do I release it before drain? After drain? Or not at all?

Edit: Code formatting is refusing to work for some reason. Could a mod please try to format the code above?

0 投票
4 回答
2091 浏览

objective-c - 目标 C - NSthread 和 NSAutoreleasePool?

编写线程安全方法的最佳方法是什么?

我有以下方法,有时我想异步调用它(通过线程调用它)有时我想直接在主线程上调用它。即使我没有在单独的线程上调用该方法,保持池(分配、释放)是否存在问题?

0 投票
3 回答
437 浏览

iphone - 我应该多久放置一次 NSAutoreleasePools?

嘿,我正在制作一个可可触摸静态库,我有这个问题:

我正在使用 Leaks 仪器在模拟器中运行我的项目,并且我想出了自动释放对象的泄漏。

我知道我一次至少有一个NSAutoreleasePool(以我的main()方法),我的问题是,我应该多久安装一次(如果这很重要,我正在为 iPhone 和 iPad 开发)

更新:我发现,出于某种原因,我的代码没有退出UIApplicationMain()iOS 4 上的调用,我只是收到一个SIGKILL信号,而且我的自动释放池没有耗尽。我该如何解决这个问题(我的意思是应用程序获得了SIGKILL

谢谢

0 投票
1 回答
378 浏览

objective-c - NSAutoReleaseNoPool() 错误,加上一个奇怪的错误

我有以下代码,并且遇到了一些问题。任何帮助,将不胜感激。当我运行代码时,出现错误:

2010-11-11 12:28:15.352 addressBook[25563:a0f] *** __NSAutoreleaseNoPool(): Object 0x100111010 of class NSCFArray autoreleased with no pool in place - just leaking

我尝试添加一个自动释放池,但它给了我更严重的错误(完全停止了程序运行),但也许我做错了?

此外,由于某种原因,在提示输入姓名后,它会在我有机会输入任何内容之前立即提示输入地址。但它只在我添加的第一个联系人时这样做。我不知道这怎么会发生..

以此类推,以此类推。

提前致谢。

0 投票
2 回答
213 浏览

iphone - Objective-C 类别中的重大漏洞

我创建了一个自定义 NSString 类别,它可以让我找到其他两个字符串之间的所有字符串。我现在遇到的问题是发现我的脚本中有很多 kB 泄漏。请看下面的代码:

我承认我不太擅长释放对象,但我相信 NSAutoreleasePool 会为我处理事情。

泄漏的行:

手动释放 secondlist 会引发异常。

提前致谢!

0 投票
4 回答
644 浏览

iphone - iPhone Autoreleasepool 和分配

我一直在阅读有关 autoreleasepool 的信息,但有一点对我来说有点不清楚。我有一些使用线程的功能,这些线程需要使用自动释放池进行单独的内存管理。

在下面的例子中是正确的

它是否正确?

或这个?

我的问题是在自动释放池范围内创建的拥有对象需要专门重新释放,还是在释放自动释放池时得到照顾?

0 投票
1 回答
748 浏览

objective-c - 嵌套的 NSAutoreleasePool

在我的 iPad 应用程序之一中,我使用 json 字符串远程构建数据库,然后转换为 NSArray 以插入核心数据,然后在 ipad 上下载大约 600Mb 的图像。所有这些都是在后台线程中创建的,从一开始就导致了一些内存问题。我掌握了在操作中嵌套 3 个不同的 NSAutoreleasePool 并在方便的时候释放它们中的每一个的问题。我没有错误,也没有泄漏,也没有警告。我只是想知道这是否是一种好方法,或者我只是想念一些东西。

这是一个示意图示例(实际代码很长):

0 投票
2 回答
1132 浏览

objective-c - 内存泄漏问题 NSAutoreleaseNoPool()

我正在尝试创建一个不可变的字符串。我没有使用 init、alloc 或 new 对其进行初始化,但内存仍在泄漏,并且它说“NSCFString 类的对象 0x234b533 自动释放,没有适当的池 - 只是泄漏”这是我想要做的

这留下了泄漏。我也试过这个

但这也不起作用,但是如果我尝试用这样的简单字符串初始化它

它有效,不知道周围发生了什么。我没有使用 init 或 alloc 但仍然存在泄漏。如果有人可以帮助我解决此问题,我将不胜感激

问候

乌迈尔