How to demonstrate memory leak and zombie objects in Xcode Instruments?

时光怂恿深爱的人放手 提交于 2019-12-08 03:49:10

问题


I would like to demonstrate memory leak and zombie object in Xcode Instruments on a class. I've found it pretty hard to trigger on purpose, especially with ARC turned on. Do you know how could I create them?


回答1:


For A leak:

Create two classes, A and B. A should have an @property that strongly references an instance of B. B should have an @property that strongly references an instance of A.

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

That'll create a leak.

For a Zombie

Create a @property that is of type assign (or a variable of type __unsafe_unretained. Then:

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

That should create a zombie situation; a dangling pointer, more specifically.




回答2:


A more elegant way to show a leak is to have a class having strong pointer to itself

A* a = [A new];
a.leakingpointer=a;


来源:https://stackoverflow.com/questions/13791948/how-to-demonstrate-memory-leak-and-zombie-objects-in-xcode-instruments

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!