NSAutoreleasepool:iPhone应用程序中的内存管理问题

时间:2011-02-28 05:48:32

标签: iphone memory-management ios4 memory-leaks nsautoreleasepool

__NSAutoreleaseNoPool(): Object 0x4c70ec0 of class UISegmentedControl autoreleased with no pool in place - just leaking
__NSAutoreleaseNoPool(): Object 0x4c70ec0 of class UISegmentedControl autoreleased with no pool in place - just leaking
__NSAutoreleaseNoPool(): Object 0x4c70ec0 of class UISegmentedControl autoreleased with no pool in place - just leaking
__NSAutoreleaseNoPool(): Object 0x4c70ec0 of class UISegmentedControl autoreleased with no pool in place - just leaking
__NSAutoreleaseNoPool(): Object 0x4c70ec0 of class UISegmentedControl autoreleased with no pool in place - just leaking

这是我在控制台中收到的警告。虽然它不会造成崩溃,但似乎是一些内存管理问题。

可能出现什么问题?

我没有自动释放我的分段控制。

2 个答案:

答案 0 :(得分:7)

使用多线程时,通常会出现此问题。 如果您使用线程,则应为该线程创建自动释放池

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

//Code....

[pool release];

答案 1 :(得分:0)

如果你在一个不是主线程的线程中使用UISegmentedControl,就像@Martin所说的那样,这是不安全的。

UIKit Framework Reference - Introduction

  

注意:在大多数情况下,UIKit类   应该只用于   应用程序的主要线程。这是   对于派生的类尤其如此   来自UIResponder或涉及   操纵应用程序的用户   以任何方式接口。