我已经看到很多关于这个主题的问题,但他们不会问我的情况。
Analyzer正在给我这个警告
调用者不在该点拥有的对象的引用计数的错误减少
但在我的情况下,所讨论的方法不会生成或不打算返回任何上下文。
我的方法是这样的:
@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);
}
分析器指向最后一行。
我该如何解决?
答案 0 :(得分:1)
您可以单独引用您的上下文,例如:
CGContextRef ctx = CGPDFContextCreateWithURL((__bridge CFURLRef)(URL), &mediaBox, NULL);
self.ctx = ctx;
然后,您可以通过调用
来释放您创建的上下文CFRelease (ctx);
所以你没有发布编译器认为自己拥有的那个。