1

次のコードにリークがあります。

-(id)initWithCoder:(NSCoder *)aDecoder {
    if (self = [super init]) {
        self.Tag = [aDecoder decodeObjectForKey:KEY_TAG];
        self.ParentTag = [aDecoder decodeObjectForKey:KEY_PARENT_TAG];
        self.Order = [aDecoder decodeObjectForKey:KEY_ORDER];
        self.OrderFavorite = [aDecoder decodeObjectForKey:KEY_ORDER_FAVORITE];
        self.isFavorite = [aDecoder decodeObjectForKey:KEY_IS_FAVORITE];
        self.isPurchased = [aDecoder decodeObjectForKey:KEY_IS_PURCHASED];

        self.Titel = [aDecoder decodeObjectForKey:KEY_TITEL];
    }
    return self;
}

リークは、その行のデバイスの計測器に表示されます。

self.Titel = [aDecoder decodeObjectForKey:KEY_TITEL];

KEY_TITEL は:

#define KEY_TITEL @"Titel"

および self.Titel は次のとおりです。

@property (nonatomic, retain) NSString *Titel;

合成され、dealloc で解放されます。

漏れがどこから来ているのかわかりません。助けてください...

ありがとうございます

4

2 に答える 2

3

Instrumentsが伝えていることを誤解しています。

オブジェクトをリークした場所はわかりません。

最終的にリークされたオブジェクトを作成した場所を示しています。

それに応じて、Instruments からのデータを再分析します。[Titel release](メソッドで呼び出しが欠落している可能性があります-dealloc)

于 2011-04-03T06:55:51.963 に答える
0

Titel実行前に値を代入していますinitWithCoderか? たぶんスーパークラス?リークはinitWithCoder実行にリンクされているようではなく、以前の割り当てにリンクされているようです。

于 2010-11-23T14:06:21.787 に答える