繁体   English   中英

我可以在Mac OSX应用程序中使用UIDocument吗?

[英]Can I use UIDocument in a Mac OSX app?

我想在iOS和OSX之间共享一个通用的文档格式。 请注意,这不是MDI应用程序; 将有一个文件来保存/加载。 不需要NSDocument样式的用户驱动管理(例如,保存,另存为,打开等)。

最大的挑战是似乎没有与OSX和IOS自然兼容的通用文档编码格式(尚未)。 根据iOS的基于文档的应用程序编程指南,看起来NSDocument和UIDocument派生类之间需要编码/解码转换。 我希望有一个通用的序列化机制与Apple生态系统中的所有设备兼容。 在这方面,任何想法,想法,提示都受到赞赏。

我可以在我的mac osx应用程序中使用UIDocument派生类,并且该文档与IOS兼容吗?

不,您不能在Cocoa应用程序中使用或子类化UIDocument,因为Cocoa中不存在UIDocument。

在NSDocument和UIDocument中,您可以确定要使用的格式。 因此,只需将它们实现为输出和输入使用相同的格式。

在为iOS构建Mac和UIDocument时,使用预处理器来设置实现NSDocument子类的文件对并不太难。 这样可以防止序列化和反序列化实现不匹配,因为每个版本只有一个副本,并且在两个平台上都使用它。

上面的Peter的答案是正确的,但我有一个建议,不涉及C预处理器(在Swift中不可用),它更像Cocoa。

观看WWDC 2014会话233,将单个项目中的iOS和Mac应用程序设置为单独的目标,然后在文档类上使用类别来实现常用功能:

CommonFunctions.h    

@interface AppDocument (CommonFunctions)
- (void)function;
@end

-

CommonFunctions.m

@implementation AppDocument (CommonFunctions)

- (void) function {
      /// stuff here
}

@end

对于每个平台/目标,您的AppDocument类将具有从UI / NSDocument继承的2个不同的类,并且每个目标将从公共位置AppDocument类别。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM