我在iOS项目中有一堆代码(名为“MyLibs”),我在不同的应用程序中重复使用。我将MyLibs项目拖到我正在创建的任何应用程序的工作区中。我本身不使用单元测试,但我有按钮,而不是在iPhone应用程序中轻松完成所有测试。
我正在学习Cocoa,并希望将我的库分成可以在两个项目中使用的库。我以为它会是MyCommonLibs(或MyFoundationLibs),MyIOSLibs和MyCocoaLibs。
但是,在创建新项目时,我必须在iOS应用程序或Cocoa应用程序之间进行选择。它看起来像iOS框架和库 - > Cocoa Touch静态库是合适的,因为它链接到Foundation框架。另一方面,如果没有重大缺点,我宁愿使用应用程序模板。
我需要能够在两种应用类型中使用MyCommonLibs,因为其中一些对两者都有用,例如NSArray类别等。
我应该为MyCommonLibs使用哪个模板,我必须使用Library,Framework(在Mac OS模板中),还是只使用普通的应用程序模板(就像我到目前为止所做的那样)?
答案 0 :(得分:2)
创建iOS框架&图书馆项目。我们称之为 TestLib 。
添加MAC OS X Framework&类型的新目标(文件>新>目标)库。
这样,您可以从同一个项目中编译iOS库和MAC OS X库。
您可以选择每个目标中包含的文件。因此,如果您想为iOS和MAC OS X提供类,则可以将其添加到两者中,如果您只想将其添加到一个平台,则只能将其添加到一个库中。
正如您在下面的屏幕截图中看到的,SharedClass
在两个库中均可用,iOSOnlyClass
仅适用于iOS,MACOnlyClass
仅适用于MAC OS X.
您还可以在同一个项目中添加单元测试的目标。
要组织代码,您可以将共享类放在一个组中,并将每个目标的类放在一个单独的组中。