首页 > 开发 > iOS > 正文

IOS非ARC下 的 下面代码因为什么内存泄露,给个修改方案~plz

2017-09-08 13:53:58  来源:网友分享
    NSObject *obj1 = [[NSObject alloc]init];    NSObject *obj2 = [[NSObject alloc]init];       obj1 = [obj2 retain];    [obj1 release];    [obj2 release];

解决方案

这个在obj1 = [obj2 retain];这一句,把obj1的指针指到obj2那块儿去了,所以obj1原来指的那块空间就没人管了,就泄漏了。

所以单就这个问题而言是obj1 = [obj2 retain];前面就要[obj1 release];,至于在工程规范上应该怎么样我也不清楚,没怎么写过非 ARC 的。如果不是为了面试,还是尽量用 ARC 吧。