2012-04-10 69 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]; 
}