希望我能解释得很好。 假定以下:Obj-C:正确释放循环中分配的对象
@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”方法中分配和初始化。
请不要为这样的问题发布非编译代码。发布您正在使用的_actual_代码。基本上不可能说你的内存管理是否正确,因为这段代码是部分无意义的。它也不是伪代码;伪代码通常是语言和框架不可知的,并且会忽略诸如alloc/init之类的东西。 –