希望我能解釋得很好。 假定以下: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之類的東西。 –