使用这个简单的代码,PDFKit中的内存泄漏?

时间:2012-01-07 17:15:02

标签: objective-c cocoa pdfkit

在PDF文件上执行这个简单的代码

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    // Insert code here to initialize your application

    NSURL *url = [NSURL fileURLWithPath: @"/Users/pc/Desktop/C# 4.0 in a Nutshell The Definitive Reference.pdf"];
    PDFDocument *document = [[PDFDocument alloc] initWithURL:url];
    [document release];

}

并使用乐器运行它我获得了内存泄漏,如下所示

enter image description here

经过调查,我发现它只发生在一些PDF文件中。其他文件在Instrument中没有任何泄漏警告的情况下运行。

这是PDFKit中的错误吗?

更新

这段代码执行了几次,严重记忆

-(IBAction) test: (id) sender
{
    NSLog(@"Starting");
        NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

    NSURL *url = [NSURL fileURLWithPath: @"/Users/pc/Desktop/C# 4.0 in a Nutshell The Definitive Reference.pdf"];

    for (int i=0; i<100; i++)
    {
        NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
        PDFDocument *document = [[PDFDocument alloc] initWithURL:url];
        [document release];
        [pool release];
    }

    [pool release];


}

1 个答案:

答案 0 :(得分:2)

每个PDF打开时泄漏量是否会增加?如果是这样,那么您可能希望通过雷达在https://bugreport.apple.com/

提交错误

如果金额保持不变,无论打开多少PDF,都可能不是错误。