IOS项目一般通过添加静态库的方式来使用第三方库,但是有时候我们需要使用一些别人比较好的工程,而这些工程可能没有提供静态库,当然我们也可以把他们工程中的核心类拷贝出来使用,可是我们不能排除有些工程过于复杂,不能轻易拷贝他们的核心类,这时我们可以通过嵌入工程的方式添加第三方工程。
下面就跟大家分享一下如何嵌入工程
首先,创建一个工程ColorfulLabel,我们将在ColorfulLabel项目中嵌入MSLabelExample项目。
ColorfulLabel项目创建完成之后在项目本地添加MSLabelExample项目的所有文件。并将MSLabelExample.xcodeproj文件拖到我们的项目中,如图所示
此时我们发现尽管我们添加了工程但是我们并不能引用他的文件,我们在AppDelegate.h文件中添加
#import "MSLabel.h"
很不幸,我们不能成功引用它。那我们应该如何解决这个问题呢?
我们找到ColorfulLabel的Build Settings - Search Paths - Header Search Paths,添加"$(PROJECT_DIR)/.." 选择recursive。完成这些设置之后,我们再看看我们之前添加的
#import "MSLabel.h"
OK,它现在能成功引用啦,这到底是什么原因呢?
原来,通过添加"$(PROJECT_DIR)/.." 就可以帮我们指定头文件的路径,Project Direction 即工程根路径,选择recursive,就是让Xcode帮我们从工程根路径开始不断循环往下寻找.h文件。
详细的解释可以参考这篇文章:http://stackoverflow.com/questions/5413338/xcode-4-and-nested-projects-header-files-not-found
添加完头文件我们还不能使用他的方法,我们需要把相应的.m文件添加到Compile Sources里面,这样就能使用第三方工程了。