Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.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
Objective c 如何知道什么文档在重新打开时崩溃?_Objective C_Macos - Fatal编程技术网

Objective c 如何知道什么文档在重新打开时崩溃?

Objective c 如何知道什么文档在重新打开时崩溃?,objective-c,macos,Objective C,Macos,例如,用户在我的应用程序中打开10个文档。 重新启动时,应用程序在重新打开这10个文档之一时崩溃。 在下一次启动时,用户将收到一条消息:“上次打开“ApplicationName”时,它意外退出…” 我需要处理哪个文档应用程序崩溃,并通知用户,例如,“document10无法重新打开…”,然后重新打开9个文档 请帮忙。我在Cocoa文档中没有找到任何与此相关的内容 对不起,我的英语是我的第二语言。打开文档时,只需将当前文档URL保存在用户默认设置中,比如说LastAttemptedOpenURL

例如,用户在我的应用程序中打开10个文档。
重新启动时,应用程序在重新打开这10个文档之一时崩溃。
在下一次启动时,用户将收到一条消息:“上次打开“ApplicationName”时,它意外退出…”

我需要处理哪个文档应用程序崩溃,并通知用户,例如,“document10无法重新打开…”,然后重新打开9个文档

请帮忙。我在Cocoa文档中没有找到任何与此相关的内容


对不起,我的英语是我的第二语言。

打开文档时,只需将当前文档URL保存在用户默认设置中,比如说
LastAttemptedOpenURL
,然后在打开文档后将其设置为null。然后在启动时,检查该键,如果该键不为空,则假定该文档使应用程序崩溃。

您可以完全控制读取
NSDocument
类中数据的代码(例如方法
-readFromURL:ofType:error:outError
),因此,在这些方法中,您似乎需要更多的错误检查和一些异常处理:

- (BOOL)readFromURL:(NSURL *)absoluteURL
             ofType:(NSString *)typeName
              error:(NSError **)outError {

    @try {
        // Do read
    } @catch(NSException *ex) {

        if (outError) {
            NSMutableDictionary *errorDetail = [NSMutableDictionary dictionary];
            [errorDetail setValue:@"Something bad happened"
                           forKey:NSLocalizedDescriptionKey];
            *outError = [NSError errorWithDomain:@"MyErrorDomain"
                                            code:100
                                        userInfo:errorDetail];
        }
        return NO;
    }

    return YES;
}
如果您决定进行异步读取,事情会更加复杂,但是仍然可以避免在潜在危险区域发生崩溃