2011-11-30 93 views
4

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

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

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

回答

5

不,您不能在Cocoa应用程序中使用或继承Uidocument,因为Cocoa中不存在Uidocument。

在NSDocument和UIDocument中,都确定了将要使用的格式。所以,只需将它们实现为对输出和输入使用相同的格式。

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

1

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继承两个不同的类,并且每个目标都会从一个常见位置提取类别。

相关问题