2012-10-01 132 views
2

我有一个UIButton链接到一些调用UIPrintInteractionController打印PDF文档的代码。iOS - NSConcreteData崩溃

如果我点击按钮,弹出的视图让我选择一台打印机,然后打印文档。但是,如果我点按视图外驳回弹出,然后迅速再次点击“打印”按钮,我得到以下崩溃:

[NSConcreteData respondsToSelector:]: message sent to deallocated instance 0xa4696d0 

我已经调试与NSZombies启用,并发生崩溃在这条线:

printController.printingItem = dataToPrint; 

dataToPrint被实例中相同的方法,但在此之前printController行:

NSData *dataToPrint = [NSData dataWithContentsOfFile:pdfFileName]; 

只有当我快速点击,如果我给它一秒,一切顺利,这个崩溃才会发生。

任何人都知道这可能是什么?

回答

3

使'dataToPrint'成为一个强大的ivar,只有当你100%确定它不会被再次使用时才会删除它。 'printController.printingItem'很可能会保留它,但是当你关闭弹出窗口时,它会在'打印'按钮再次被打开之前被释放。

+0

谢谢!很高兴我能帮上忙! –