Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode NSOpenPanel运行模式崩溃?_Xcode_Cocoa_Nsopenpanel - Fatal编程技术网

Xcode NSOpenPanel运行模式崩溃?

Xcode NSOpenPanel运行模式崩溃?,xcode,cocoa,nsopenpanel,Xcode,Cocoa,Nsopenpanel,我有一个基于本论坛代码的例程: + (FSRef)useOpenFileToGetFSRef:(NSString **)fileName requiredFileType: (NSString*) requiredFileType { FSRef fileFSRef; NSArray* fileTypes = [[NSArray alloc] initWithObjects:requiredFileType, nil]; //http://stackoverflow.

我有一个基于本论坛代码的例程:

+ (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;
}
+(FSRef)使用OpenFileToGetFSref:(NSString**)文件名requiredFileType:(NSString*)requiredFileType
{
FSRef文件FSRef;
NSArray*文件类型=[[NSArray alloc]initWithObjects:requiredFileType,nil];
//http://stackoverflow.com/questions/11815784/objective-c-nsopenpanel-get-filename
NSOpenPanel*openDlg=[NSOpenPanel-openPanel];
[openDlg setFloatingPanel:是];
[openDlg SetCanChoosedDirectories:否];
[openDlg setCanChooseFiles:是];
[openDlg setAllowsMultipleSelection:是];
[openDlg setAllowedFileTypes:文件类型];

if([openDlg runModal]==NSOKButton)//项目文件中似乎存在一些异常。我将所有源文件和xib文件复制到一个新项目中,然后NSOpenPanel runModal按预期工作。

我实际上认为您在所有异常上都有一个断点。我只是遇到了这个问题,并查找原因。我遇到了这篇文章,但随后发现了以下内容


当您重新创建项目时,断点被重置。

也有类似的问题。我没有存储所有项目文件(同一代码在另一台机器上工作正常)。我一个接一个地删除了它们,没有效果。删除了
DerivedData
目录,没有效果

lappy:vStacks ndunn$hg st? StacksGui3.xcodeproj/project.xcworkspace/xcuserdata/ndunn.xcuserdatad/UserInterfaceState.xcuserstate ? StacksGui3.xcodeproj/xcuserdata/ndunn.xcuserdatad/xcschemes/StacksGui3.xcschemes? vStacks.xcodeproj/project.xcworkspace/xcuserdata/ndunn.xcuserdatad/UserInterfaceState.xcuserstate ? vStacks.xcodeproj/xcuserdata/ndunn.xcuserdatad/xcdebugger/Breakpoints\u v2.xcbkptlist ? vStacks.xcodeproj/xcuserdata/ndunn.xcuserdatad/xcschemes/vStacks.xcschemes ? vStacks.xcodeproj/xcuserdata/ndunn.xcuserdatad/xcschemes/xcschememanagement.plist

我本想做你做的事,但结果是:
1-删除我的vStacks.xcodeproj和源
2-创建具有相同名称的另一个
3-删除了新的一个
4-从源代码管理恢复整个项目


注意:不确定第2步和第3步是否必要,但第1步和第4步肯定是必要的。

例外情况是什么?根据您的图像,抛出发生在另一个线程quicklook.pluginload中,而不是直接发生在
runModal
本身。您在对话框中做什么?是否安装了自定义quicklook插件?我不知道我看不到异常名称的通知。我没有运行任何自定义quicklook插件。什么可能导致quicklook线程崩溃?几个月后我才看到此评论。非常有趣!那么,在打开和保存对话框中异常正常吗?