【发布时间】:2011-08-19 19:15:47
【问题描述】:
希望我能很好地解释这一点。 假设如下:
@interface ClassA : NSObject {
NSMutableArray firstArray;
NSArray secondArray;
}
#import "ClassA"
@interface ClassB : NSObject {
ClassA classAobject;
}
然后在程序“伪代码”的其他部分访问字典键,例如:
NSMutableArray* sample = [[NSMutableArray alloc] init];
for (keys in Data)
{
ClassA* aObj = [[ClassA alloc] initWith: objectForKey:@"KeyHere" andWith:@"Key2Here"];
ClassB* bObj = [[ClassB alloc] init];
[bObj setClassAObj: aObj];
[sample addObject: bObj];
}
Singleton* single = [Singleton single];
[single setArray: sample];
我的问题是在循环内创建的 ClassA 和 ClassB 对象以及将它们存储在循环外的数组。我是否在这里泄漏内存,而不是释放它们?如果我确实释放了它们,我怎样才能这样做,以免在存储“样本”数组的单例中丢失对它们的引用?
如果重要,存储它的 Singleton 数组会在类的“init”方法中分配和初始化。
【问题讨论】:
-
请不要为这样的问题发布非编译代码。发布您正在使用的实际代码。基本上不可能说你的内存管理是否正确,因为这段代码部分是荒谬的。它也不是伪代码;伪代码通常与语言和框架无关,并且会忽略
alloc/init之类的内容。
标签: objective-c memory-management memory-leaks release-management retain