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拥有的版本