0

在我的应用程序中,我创建了一个 appdelegate 共享实例,并且我正在将内存分配给某个数组,例如

appDelegate = (AppDelegate_Shared *)[[UIApplication sharedApplication] delegate];
appDelegate.allServiceAppList_array = [[NSMutableArray alloc]init];
appDelegate.blockXMLData_array = [[NSMutableArray alloc]init];
appDelegate.notesXMLData_array = [[NSMutableArray alloc]init]; 

现在我不知道如何释放我分配的所有数组。它显示了我分配和初始化内存的潜在泄漏。

释放这些对象的正确方法是什么。

提前致谢

4

2 回答 2

2

如果 AppDelegate 属性定义为(保留),只需执行

appDelegate.something = [[[Something alloc]init]autorelease];

这是 ObjC 中最常见的模式。

保留属性将保留新对象,自动释放本质上是在将来释放该对象,因此最终结果是保留计数为 1 的对象,该对象将在 dealloc 方法中释放。

于 2012-06-06T13:21:43.477 回答
0

不要那样做

用这种方式

NSMutableArray* arr = [[NSMutableArray alloc]init];
appDelegate.allServiceAppList_array = arr;
[arr release];
arr =nil;

arr = [[NSMutableArray alloc]init];
appDelegate.blockXMLData_array = arr;
[arr release];
arr =nil;

arr = [[NSMutableArray alloc]init];
appDelegate.notesXMLData_array = arr;
[arr release];
arr =nil;
于 2012-06-06T09:06:31.550 回答