objective-c - IOS非ARC下 的 下面代码因为什么内存泄露,给个修改方案~plz
大家讲道理
大家讲道理 2017-04-17 17:09:19
0
1
786
    NSObject *obj1 = [[NSObject alloc]init];
    NSObject *obj2 = [[NSObject alloc]init];
   
    obj1 = [obj2 retain];
    [obj1 release];
    [obj2 release];
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

모든 응답(1)
PHPzhong

obj1 = [obj2 retain];의 이 문장은 obj1의 포인터가 obj2 영역을 가리키고 있기 때문에 원래 obj1이 가리키는 공간은 아무도 신경 쓰지 않고 유출됩니다.

그래서 이 문제에 관해서는 obj1 = [obj2 retain]; 앞에 [obj1 release];가 있어야 합니다. 엔지니어링 사양에 대해서는 무엇을 적어야 할지 모르겠습니다. ARC가 아닌 것에 대해 많이. 인터뷰가 아니라면 ARC를 사용해 보세요.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿