2012-04-10 95 views
1

所以,我想测试打印功能,我不断收到一个错误EXC_BAD_ACCESS在这部分代码指着我:EXC_BAD_ACCESS当试图打印

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

上面这段代码是直接从Apple的开发者文档中提取出来。

我已经在此代码块之前放置了一个断点,而且似乎[core window]绝对不是NULL并已分配。

那么,什么是错的?有任何想法吗?


UPDATE:

尝试这样:

[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 
+3

我会推荐*启用僵尸*来查看是否有任何对象被过度释放。 – trojanfoe 2012-04-10 15:43:35

+0

op已经发布?编辑:我也赞同@trojanfoe,僵尸帮助很多。 – 2012-04-10 15:43:40

+0

@trojanfoe我已经启用*僵尸对象*,但我没有看到任何在控制台... – 2012-04-10 15:45:21

回答

0

我只是觉得:

诀窍是releaseNSTextView在打印功能的结束。

 ... 
     [printView release]; 
}