Cocoa CGContextRelease-未拥有的对象的引用计数的递减率不正确

Cocoa CGContextRelease-未拥有的对象的引用计数的递减率不正确,cocoa,automatic-ref-counting,quartz-graphics,Cocoa,Automatic Ref Counting,Quartz Graphics,我看到很多关于这个主题的问题,但他们没有问我的情况 分析仪正在给我这个警告 调用方在该点不拥有的对象的引用计数的减少不正确 但在我的例子中,所讨论的方法不是生成上下文,也不打算返回任何上下文 我的方法是这样的: @property (nonatomic, assign) CGContextRef ctx; - (void)generatePDFWithSize:(CGSize)size andURL:(NSURL*)url { CGRect mediaBox = CGRectZero;

我看到很多关于这个主题的问题,但他们没有问我的情况

分析仪正在给我这个警告

调用方在该点不拥有的对象的引用计数的减少不正确

但在我的例子中,所讨论的方法不是生成上下文,也不打算返回任何上下文

我的方法是这样的:

@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);
}
@属性(非原子,赋值)CGContextRef ctx;
-(void)generatePDFwith size:(CGSize)size和url:(NSURL*)url{
CGRect mediaBox=CGRectZero;
mediaBox.size=tamanho;
self.ctx=CGPDFContextCreateWithURL((uu桥CFURLRef)(URL),&mediaBox,NULL);

对于(int i=0;i您可以单独引用您的上下文,例如:

CGContextRef ctx = CGPDFContextCreateWithURL((__bridge CFURLRef)(URL), &mediaBox, NULL);
self.ctx = ctx;
然后,您可以通过调用以下命令来释放已创建的上下文:

CFRelease (ctx);
因此,您不会发布编译器认为self拥有的版本