1

クラスの Xcode Instruments でメモリ リークとゾンビ オブジェクトを示したいと思います。特にARCがオンになっていると、意図的にトリガーするのはかなり難しいことがわかりました. どうすればそれらを作成できるか知っていますか?

4

2 に答える 2

3

リークの場合:

A と B の 2 つのクラスを作成します。A には、B のインスタンスを強く参照する @property が必要です。B には、A のインスタンスを強く参照する @property が必要です。

A *a = [A new];
B *b = [B new];
a.b = b;
b.a = a;

漏れが発生してしまいます。

ゾンビの場合

type の @property assign(または type の変数) を作成します__unsafe_unretained。次に:

A *a = [A new];
A.dangerDanger = [NSObject new];

それはゾンビの状況を作り出すはずです。より具体的には、ダングリングポインター。

于 2012-12-09T22:03:20.340 に答える
0

リークを示すより洗練された方法は、それ自体への強いポインタを持つクラスを持つことです

A* a = [A new];
a.leakingpointer=a;
于 2013-12-06T08:10:17.850 に答える