찾다

 >  Q&A  >  본문

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

    NSObject *obj1 = [[NSObject alloc]init];
    NSObject *obj2 = [[NSObject alloc]init];
   
    obj1 = [obj2 retain];
    [obj1 release];
    [obj2 release];
大家讲道理大家讲道理2773일 전790

모든 응답(1)나는 대답할 것이다

  • PHPz

    PHPz2017-04-17 17:11:19

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

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

    회신하다
    0
  • 취소회신하다