首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可可定制NSDocument储蓄

可可定制NSDocument储蓄
EN

Stack Overflow用户
提问于 2013-09-25 11:54:35
回答 1查看 989关注 0票数 2

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

我还尝试了以下几点:

代码语言:javascript
复制
- (void)saveToURL:(NSURL *)url ofType:(NSString *)typeName forSaveOperation:(NSSaveOperationType)saveOperation completionHandler:(void (^)(NSError *errorOrNil))completionHandler
{
   librarySaveFunction(url.path);
}

这是可行的,但是文档标题仍然是'MyFile - Edited',如果我再次尝试保存,我会得到一个错误,即文档已经被另一个应用程序更新了(我能够通过设置文件修改日期来解决这个问题,但是文件仍然被标记为Edited,而且感觉非常不舒服)。

有没有人有更好的建议,以更好的方式来覆盖保存例程?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-25 12:55:23

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

对各种覆盖点和适合它们的情况的最终讨论是这里

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19004211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档