2014-04-28 1 views
0

저는이 주제에 관해서 많은 질문을했지만, 제 경우는 묻지 않습니다.CGContextRelease - 소유하지 않은 객체의 참조 카운트의 감소가 올바르지 않음

분석기는 나에게이 경고를주고있다

내 경우에 문제가되는 방법은 생성되지

하지만 발신자가 그 시점에서 소유하지 않은 객체의 참조 횟수의

잘못된 감소 또는 문맥을 반환하기위한 것이 아닙니다.

내 방법은 다음과 같이이다 :

@property (nonatomic, assign) CGContextRef ctx; 

- (void)generatePDFWithSize:(CGSize)size andURL:(NSURL*)url { 

    CGRect mediaBox = CGRectZero; 
    mediaBox.size = tamanho; 

    self.ctx = CGPDFContextCreateWithURL((__bridge CFURLRef)(URL), &mediaBox, NULL); 

    for (int i=0; i<numberOfPages; i++) { 
    CGPDFContextBeginPage(self.ctx, NULL); 
    //... bla bla bla... generate page 
    CGPDFContextEndPage(self.ctx); 
    } 

    CGContextRelease(self.ctx); 
} 

분석기는 마지막 줄 가리키고 있습니다.

어떻게 해결할 수 있습니까?

당신은 귀하의 상황에 별도의 기준을 유지할 수 있습니다

답변

1

: 그래서

CFRelease (ctx); 

당신이 해제하지 않는 :

CGContextRef ctx = CGPDFContextCreateWithURL((__bridge CFURLRef)(URL), &mediaBox, NULL); 
self.ctx = ctx; 

그런 다음 당신은 당신이 호출하여 만든 컨텍스트를 해제 할 수 있습니다 컴파일러가 자기 소유라고 믿는 것.

+0

ahhhhhhhhhh .... 감사합니다. Xcode가 충분히 똑똑하다고 생각했습니다! – SpaceDog

관련 문제