我想在一个类上演示 Xcode Instruments 中的内存泄漏和僵尸对象。我发现很难故意触发,尤其是在 ARC 开启的情况下。你知道我怎么能创造它们吗?
问问题
645 次
2 回答
3
对于泄漏:
创建两个类,A 和 B。A 应该有一个强引用 B 实例的 @property。B 应该有一个强引用 A 实例的 @property。
A *a = [A new];
B *b = [B new];
a.b = b;
b.a = a;
这会造成泄漏。
对于僵尸
创建一个类型为 @property assign
(或类型为 的变量__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 回答