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

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

我可以在我的Mac OSX应用程序中使用Uidocument派生的类,并且文档与iOS兼容?

有帮助吗?

解决方案

不,您不能在可可应用中使用或子类UIDOCUMENT,因为可可中不存在UIDOCUMEMENT。

在NSDocument和Uidocument中,您可以确定要使用的格式。因此,只需实现两者以使用相同的格式作为输出和输入即可。

在为iOS构建时为Mac和UIDOCUMEMENT构建iOS时,使用预处理器来设置实现NSDocument的文件对并不难。这将阻止您无法进行序列化和避免实现,因为您只有一个副本并在两个平台上使用它。

其他提示

彼得上面的答案是正确的,但是我有一个建议,不涉及C前处理器(Swift中不可用),这更像可可。

观看WWDC 2014 Session 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个不同类别的类别,每个目标都会从一个共同位置吸引类别。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top