Objective c EXC\u尝试打印时访问错误
因此,我正在尝试测试打印功能,我不断得到一个Objective c EXC\u尝试打印时访问错误,objective-c,cocoa,printing,nsprintoperation,Objective C,Cocoa,Printing,Nsprintoperation,因此,我正在尝试测试打印功能,我不断得到一个EXC\u BAD\u ACCESS错误,指向代码的这一部分: [op runOperationModalForWindow:(NSWindow*)[core window] delegate:self didRunSelector: @selector(printOperationDidRun:success:contextInfo:)
EXC\u BAD\u ACCESS
错误,指向代码的这一部分:
[op runOperationModalForWindow:(NSWindow*)[core window]
delegate:self
didRunSelector:
@selector(printOperationDidRun:success:contextInfo:)
contextInfo:NULL];
以上代码直接来自苹果的开发者文档
我在这个代码块前面放了一个断点,似乎[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
我刚找到它: 诀窍是在打印功能结束时
release
myNSTextView
...
[printView release];
}
我建议启用僵尸来查看是否有任何对象被过度释放。op已经被释放了吗?编辑:我也同意@trojanfoe,僵尸帮了大忙。@trojanfoe我启用了僵尸对象,但在控制台中没有看到任何东西…@trojanfoe我做了一些更改;看看。试着运行xcode提供的代码分析工具