【发布时间】:2011-01-30 07:42:48
【问题描述】:
我在 Objective-C 中的内存管理有问题。假设我有一个分配对象并将对该对象的引用存储为类成员的方法。如果我第二次运行相同的函数,我需要先释放第一个对象,然后再创建一个新对象来替换它。假设函数的第一行是:
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
这意味着将有一个不同的自动释放池。分配对象的代码如下:
if (m_object != nil)
[m_object release];
m_object = [[MyClass alloc] init];
[m_object retain];
问题是运行方法最后一行时程序崩溃:
[pool release];
我做错了什么?我该如何解决这个问题?
问候
艾伦
【问题讨论】:
标签: objective-c memory-management nsautoreleasepool