gpt4 book ai didi

objective-c - cocoa 自定义NSDocument保存

转载 作者:行者123 更新时间:2023-12-03 16:32:04 24 4
gpt4 key购买 nike

我有一个应用程序,我使用第三方库来保存和加载数据。通常,在使用 NSDocument 时,我会重写 - (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError 方法并返回正确的数据,但是使用这个库我只有访问保存例程(它也可以创建多个文件,否则我将保存到临时文件并返回临时文件的数据)。

我还尝试了以下方法:

- (void)saveToURL:(NSURL *)url ofType:(NSString *)typeName forSaveOperation:(NSSaveOperationType)saveOperation completionHandler:(void (^)(NSError *errorOrNil))completionHandler
{
librarySaveFunction(url.path);
}

这有效,但文档标题保持为“我的文件 - 已编辑”,如果我尝试再次保存,我会收到一条错误消息,表明该文档已被另一个应用程序更新(我可以通过设置我的文件来解决此问题)修改日期,但文件仍然标记为已编辑,感觉很 hackish)。

有人对重写保存例程的更好方法有更好的建议吗?

最佳答案

NSDocument 有一个庞大的涉及读取和写入数据的方法层次结构。您应该覆盖哪一个很大程度上取决于您的特定情况的具体情况以及它们与默认读/写机制的关系。当我看到这个问题时,我的直觉 react 是你不想重写 -save* 方法,你想重写 -write* 方法(可能-writeToURL:ofType:forSaveOperation:originalContentsURL:error:),但如果不了解更多关于您的应用程序(以及您正在使用的第三方库)的具体信息,真的很难说。

关于各种覆盖点及其适用情况的明确讨论是 here .

关于objective-c - cocoa 自定义NSDocument保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19004211/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com