始终在NSDocument中附加文件扩展名

时间:2014-10-15 08:10:05

标签: objective-c cocoa file-type nsdocument nsapplication

始终确保保存到磁盘(或iCloud)的文件包含基于NSDocument的Cocoa应用程序中文档格式的默认文件扩展名的最佳方法是什么?

背景
用户可以将旧文件加载到仍使用Type-Creator-Codes的应用程序中。

在我们的应用程序中启用了自动保存功能后,我们需要确保文件在使用我们的Cocoa应用程序写回磁盘后(通过任何类型的更改),始终添加文件扩展名 - 或者该应用程序无法打开它(现在既不类型 - 创建者 - 代码也不文件扩展名)。

1 个答案:

答案 0 :(得分:2)

如果我说得对,我会覆盖NSDocumentController's open method

- (void)openDocumentWithContentsOfURL:(NSURL *)url 
                              display:(BOOL)displayDocument 
                    completionHandler:(void (^)(NSDocument *document, 
                                                BOOL documentWasAlreadyOpen, 
                                                NSError *error))completionHandler {
    if(!url.pathExtension isEqualToString:@"XYZ")
        url = url URLByAppendingPathExtension:@"XYZ"];
    [super openDocumentWithContentsOfURL:url 
                                 display:displayDocument 
                       completionHandler:completionHandler];
}

注意:内联编写