我的应用正在接收内存警告,因为它正在请求大量内存。我尝试释放所有分配。但是,有时我不知道该怎么做。
例如:我有两对.h和.m文件。其中一个与服务器建立连接,另一个与本地SQLite建立连接。
通常,从这些文件中调用方法的代码如下:
-(NSMutableArray *) getRecentActivity{
LocalStorageController *local = [[LocalStorageController alloc]init];
return [local getRecentActivity];
}
getRecentActivity返回NSMutableArray。
好吧,在那段代码中,我们可以看到我正在为LocalStorageController分配内存,但是我从未调用过release方法,所以,我想,我调用该函数的次数越多,我将分配的内存就越多。
如果在初始化后调用自动释放,它将崩溃。
而且,通常,我使用这种其他类型的代码:
ServerConnection *serv = [[ServerConnection alloc]init];
NSMutableArray list = [serv getMyListOfContacts];
它使用ASIHTTPRequest,并且如果我在第二行之后调用
[serv release];
,则应用程序崩溃,指向EXC_BAD_ACCESS的是ASIHTTPRequest库中的一行。应该如何处理这种情况?
非常感谢你!
最佳答案
第一种情况很容易。
-(NSMutableArray *) getRecentActivity{
LocalStorageController *local = [[LocalStorageController alloc]init];
NSMutableArray *tmp = [local getRecentActivity];
[local release];
return tmp;
}
如果不查看更多实际代码,很难以一般方式解决第二种情况。