0

私はカスタムフレームワーク(そしてもちろん、それをテストするためのCocoaTouchアプリケーション)を開発しています。これは大きなフレームワークであるため、ここに投稿することはできません(オープンソースではないこと、私のせいではないことを除けば、誓います!)。

私はかなり長い間試みてきましたが、おそらく答えを見つけることができません:Instrumentsは私のアプリケーションのいくつかのリークを非難しています。私は本当に初心者なので、レポートを誤解しているかどうかはわかりませんが、次のような方法のようです。

[NSArray array]
[NSString stringWithCString:encoding:]
[NSString stringWithFormat:]
[NSString stringWithUTF8String:]
[_obj_rootAlloc]
[__NSArrayM]

主な理由のいくつかであり、それは私にはまったく意味がありません。

このリンクでは、Instrumentsの実行レポートを見つけることができます。誰かが見て、それが何かを意味する可能性があるかどうかを確認してください。

4

2 に答える 2

4

Instrumentsは、リークされたオブジェクトが作成された場所を報告しますが、それらが公式のリークになるポイントではありません。どこかで、これらのメソッドを使用して作成しているオブジェクトは、保持されすぎているか、必要なときに解放されていません。

于 2012-06-13T23:08:40.027 に答える
0

実際の問題は、私が合成されたプロパティについて行った仮定でした。私はこのようなものを持っていました:

@interface MyClass : NSObject

@property(nonatomic,retain) NSString *myProperty;

@end

そして実装では:

@implementation MyClass
@synthesize myProperty=_myProperty;

@end

@synthesize物件もそうだと思いましたautoreleaseが、それが私の間違いでした。私はそれを修正しました:

@implementation MyClass
@synthesize myProperty=_myProperty;

-(void)dealloc
{
    [_myProperty release];
    [super dealloc];
}

@end

助けてくれてありがとう!

于 2012-07-11T03:58:37.633 に答える