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

Ios 我可以在Mac OSX应用程序中使用UIDocument吗?,ios,cocoa-touch,macos,cocoa,osx-lion,Ios,Cocoa Touch,Macos,Cocoa,Osx Lion,我想在iOS和OSX之间共享一种通用的文档格式。请注意,这不是MDI应用程序;将有一个文档需要保存/加载。不需要NSDocument样式的用户驱动管理(例如保存、另存为、打开等) 最大的挑战是,似乎还没有与OSX和IOS自然兼容的通用文档编码格式。根据iOS基于文档的应用程序编程指南,NSDocument和UIDocument派生类之间似乎需要进行编码/解码转换。我希望苹果生态系统中的所有设备都能兼容通用的序列化机制。在这方面的任何想法、想法和建议都将受到赞赏 我是否可以在mac osx应用程序

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

最大的挑战是,似乎还没有与OSX和IOS自然兼容的通用文档编码格式。根据iOS基于文档的应用程序编程指南,NSDocument和UIDocument派生类之间似乎需要进行编码/解码转换。我希望苹果生态系统中的所有设备都能兼容通用的序列化机制。在这方面的任何想法、想法和建议都将受到赞赏


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

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

在NSDocument和UIDocument中,您可以确定要使用的格式。所以,只要实现它们,就可以对输出和输入使用相同的格式


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

Peter上面的回答是正确的,但我有一个建议,不涉及C预处理器(Swift中不提供),这有点像Cocoa

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

CommonFunctions.h    

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

您的
AppDocument
类将根据每个平台/目标的需要从UI/NSDocument继承2个不同的类,每个目标将从一个公共位置引入类别

CommonFunctions.m

@implementation AppDocument (CommonFunctions)

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

@end