【发布时间】:2013-07-04 19:45:12
【问题描述】:
我有一个基于此论坛上的代码的例程:
+ (FSRef)useOpenFileToGetFSRef:(NSString **)fileName requiredFileType: (NSString*) requiredFileType
{
FSRef fileFSRef;
NSArray* fileTypes = [[NSArray alloc] initWithObjects:requiredFileType, nil];
//http://stackoverflow.com/questions/11815784/objective-c-nsopenpanel-get-filename
NSOpenPanel* openDlg = [NSOpenPanel openPanel];
[openDlg setFloatingPanel:YES];
[openDlg setCanChooseDirectories:NO];
[openDlg setCanChooseFiles:YES];
[openDlg setAllowsMultipleSelection:YES];
[openDlg setAllowedFileTypes:fileTypes];
if ( [openDlg runModal] == NSOKButton ) //<== CRASHES ON CALL TO runModal
{
NSArray* filePaths = [openDlg URLs];
//only getting 1st file
NSURL *fileUrl = [filePaths objectAtIndex:0];
*fileName = [fileUrl path];
CFURLGetFSRef((CFURLRef)fileUrl, &fileFSRef);
}
return fileFSRef;
}
应用程序在调用 runModel 时反复崩溃:
这能解释什么?
非常感谢大家提供任何信息。
系统信息:OS X 10.8.4。使用 ARC 编译。
【问题讨论】:
-
有什么异常?
-
根据您的图像,抛出发生在另一个线程 quicklook.pluginload 中,而不是直接在
runModal本身中。你在对话框里做什么?您是否安装了自定义 quicklook 插件? -
我还没有看到异常名称的通知。
-
我没有运行任何自定义 quicklook 插件。
-
什么可能导致 quicklook 线程崩溃?
标签: xcode cocoa nsopenpanel