Утечки говорят мне, что это утечка памяти, но я не уверен, почему.
TitledArray.h
@interface TitledArray : NSObject {
NSMutableArray *realArray;
BOOL uniqueTitles;
BOOL uniqueIDs;
}
@property (nonatomic) BOOL uniqueTitles;
@property (nonatomic) BOOL uniqueIDs;
@property (nonatomic, retain) NSMutableArray *realArray;
TitledArray.m
-(id)init {
return [self initWithUniqueTitles:FALSE uniqueIDs:FALSE];
}
-(id)initWithUniqueTitles:(BOOL)titles uniqueIDs:(BOOL)IDs {
if ( self = [super init] ) {
//self.realArray = [[NSMutableArray alloc] init];
self.realArray = [NSMutableArray array];
self.uniqueTitles = titles;
self.uniqueIDs = IDs;
}
return self;
}
MissionLoading.h
@interface MissionLoading : TitledObject {
TitledArray *storageWeights;
TitledArray *passengerWeights;
}
@property (nonatomic, retain) FloatArray *storageWeights;
@property (nonatomic, retain) FloatArray *passengerWeights;
MissionLoading.m
@synthesize storageWeights;
@synthesize passengerWeights;
-(id)init {
if ( self = [super init]) {
self.storageWeights = [[TitledArray alloc] initWithUniqueTitles:FALSE uniqueIDs:TRUE];
self.passengerWeights = [[TitledArray alloc] initWithUniqueTitles:FALSE uniqueIDs:TRUE];
}
return self;
}
-(void)dealloc{
[storageWeights release];
[passengerWeights release];
[super dealloc];
}
Код:
for (int i = 0; i < recordCount; i++)
{
loading = [[MissionLoading alloc] init];
// add to array
[loading release];
}
Коренная утечка в объекте TitledArray с self.realArray = [NSMutableArray array];
Я все еще новичок в разработке под iOS, но мне это нравится. Любые мысли будут полезны. Я могу предоставить больше информации, если это необходимо.
Спасибо!