在OSX和IOS应用程序之间共享代码的最佳做法

前端之家收集整理的这篇文章主要介绍了在OSX和IOS应用程序之间共享代码的最佳做法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在创建一个现有的OSX应用程序的iOS版本,并且想知道最佳做法是在两者之间共享代码.
所涉及的代码仅取决于基础框架和sqlite动态库,因此应在两个平台上编译并运行良好.

在我看来,有三种可能的选择:

>使用OSX和IOS目标创建单个项目,并根据需要将源文件添加到每个目标.
>为OSX和IOS应用程序创建两个单独的项目,将共享代码放在工作区中的公共位置,并将其添加为两个项目的参考.
>创建三个项目:OSX应用程序,IOS应用程序和具有OSX和IOS目标的共享静态库;将每个库目标添加到相应的应用程序.

有没有理由上述方法之一可能比其他两个更好?如果没有,选项2似乎是最简单的.

解决方法

我已经做到了这一点,并采取了第三种方法;一个单独的静态库.我选择这种方法的原因是因为它可以保存在自己的git repo中,并在以后与其他项目共享.

然而,需要克服的一件事就是确定你正在编译的平台.我使用以下代码片段解决了这一点,该代码片段定义了SYSINFO_IOS或SYSINFO_OSX,然后在库源/头文件中使用它们:

#import <TargetConditionals.h>

#if !TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR
#define SYSINFO_OSX 1
#else
#define SYSINFO_IOS 1
#endif

该片段应该在自己的头文件中.

猜你在找的iOS相关文章