我有一个基于这个论坛上的代码的例程:
+ (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 10.8.4。用ARC编译。
发布于 2013-11-04 01:16:15
我觉得你对所有例外都有断点。我只是偶然发现了这件事并在寻找原因。我撞到了这篇文章,但后来发现了下面的内容。
NSOpenPanel crashes when debugging with Xcode 4.5.1
当您重新创建项目时,断点被重置。
发布于 2013-07-05 21:06:34
项目文件中似乎有异常。我将所有源文件和xib文件复制到一个新项目中,然后NSOpenPanel runModal按预期工作。
发布于 2014-01-16 17:57:52
也有类似的问题。我并没有存储所有的项目文件(相同的代码在另一台机器上完美地工作)。我一个接一个地把它们拿掉,没有效果。删除了DerivedData目录,没有效果。
lappy:vStacks $ hg st .?StacksGui3.xcodeproj/project.xcworkspace/xcuserdata/ndunn.xcuserdatad/UserInterfaceState.xcuserstate?StacksGui3.xcodeproj/xcuserdata/ndunn.xcuserdatad/xcschemes/StacksGui3.xcscheme?vStacks.xcodeproj/project.xcworkspace/xcuserdata/ndunn.xcuserdatad/UserInterfaceState.xcuserstate?vStacks.xcodeproj/xcuserdata/ndunn.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist?vStacks.xcodeproj/xcuserdata/ndunn.xcuserdatad/xcschemes/vStacks.xcscheme?vStacks.xcodeproj/xcuserdata/ndunn.xcuserdatad/xcschemes/xcschememanagement.plist
我本来想做你做的事,但最后我:
1-删除我的vStacks.xcodeproj和源代码
2-创建另一个同名的
3-删除新的
4-从源代码管理中恢复整个项目。
注意:不确定步骤2和步骤3是否必要,但1和4肯定是必要的。
https://stackoverflow.com/questions/17477263
复制相似问题