【发布时间】:2011-06-16 14:04:21
【问题描述】:
我来自 .NET 世界,所以内存管理并不是我在过去给予太多的东西。所以,这就是我所处的情况。我有一个搜索数据库并将一些数据返回给视图控制器的方法:
- (NSArray *)getSomeData
{
NSMutableArray *myArray = [[NSMutableArray alloc] init];
//search DB
[myArray addObject:@"Here I'm adding some objects"];
return myArray;
}
在我的视图控制器中,我有一个全局变量 NSArray *myGlobalData 来添加我的数据库数据:
myGlobalData = [DataManager getSomeData];
当我使用分配或泄漏运行我的应用程序时,会出现内存泄漏。我怎样才能避免这种情况?我尝试使用自动释放,但没有帮助。处理初始化/分配对象返回的标准方法是什么?
【问题讨论】:
-
不要调用方法
get任何东西;就叫它someData。get有非常具体和特殊的含义。 -
我在数据层命名约定中使用“fetch”和“save”。我认为您指的是 getter 和 setter,但我只是想澄清一下,因为我是新手ObjC 并想尽可能多地学习 :) 我认为这是一个很好的建议!
-
没关系;
get表示该方法将通过引用返回某些内容,这在 Cocoa API 中非常罕见。
标签: objective-c ios memory-management memory-leaks