リークは、以下がメモリリークであることを私に伝えていますが、なぜそれがわかりません。iOSメモリ管理
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];
}
ルートリークがself.realArray = [NSMutableArrayの配列]を有するTitledArrayオブジェクトです。
私はまだiOS開発の新機能ですが、これは私にはよく見えます。どんな考えが役に立つでしょう。必要に応じてさらに情報を提供することができます。
ありがとうございます!
それは問題だった。私はおそらくそれを考え出したことはないだろう! –