1

所以,我正在尝试测试打印功能,但我一直收到一个EXC_BAD_ACCESS错误,指向我的这部分代码:

[op runOperationModalForWindow:(NSWindow*)[core window]
                      delegate:self
                didRunSelector:
 @selector(printOperationDidRun:success:contextInfo:)
                   contextInfo:NULL];

上面的代码直接来自 Apple 的开发人员文档。

我在这个代码块之前放了一个断点,看起来它[core window]绝对不是NULL并且分配的。

那么,怎么了?有任何想法吗?


更新 :

试过这个:

[self setPrintView:[[[NSTextView alloc] initWithFrame:NSMakeRect(0,0,200,200)]
  retain]];

[[self printView] setString:[[[[core editor] currentDocument] editorView] string]];
[[self printView] setHidden:NO];

NSPrintOperation *op = [NSPrintOperation
                        printOperationWithView:[[self printView] retain]
                        printInfo:nil];

[op setCanSpawnSeparateThread:YES];
[op setShowsPrintPanel:NO];
[op runOperation];

我现在得到:

*** -[NSStorage insertElement:atIndex:]: message sent to deallocated instance 0x121267ff0
4

1 回答 1

0

我刚刚找到它:

诀窍是releaseNSTextView在打印功能的末尾。

       ...
       [printView release];
}
于 2012-04-10T18:06:29.500 回答