iOS Workspace项目管理
1、创建Workspace工作空间
2、在桌面新建文件夹做为根目录,命名为School。将步骤1创建的工作空间命名为School.xcworkspace,并保存到School文件夹里面。
3、创建第一个工程命名为Student,并将工程添加到School工作空间。
4、重复步骤3,创建第二个工程命名为Teacher,并将工程添加到School工作空间。
5、重复步骤3,创建第三个工程命名为Parent,并将工程添加到School工作空间。
6、创建完成后,School目录和School.xcworkspace工程结构如下图所示
7、创建Static Library,命名为SchoolLib,同上步骤添加到School.xcworkspace里,具体步骤如下:
8、创建Framework静态库,命名为SchoolFramwork,图示步骤如下:
9、至此,我们创建完成了三个工程(Student,Teacher,Parents)和两个静态库(SchoolLib,SchoolFramework)。
10、最终School文件目录结构如下图:
11、工程中引用Static Library库
12、首先在SchoolLib.h文件中写一个类方法,我们希望这个方法可以在Parent工程里调用。
13、如果想要在Parent工程里调用,我们首先需要把SchoolLib静态库和Parent工程进行关联,步骤如下:
14、如果此时引入静态库后,编译代码仍旧是不能够通过的,我们需要将静态库的目录引用进来
15、在Teacher工程的Target/Build Settings/User Header SearchPaths中添加$(BUILT_PRODUCTS_DIR),并选择递归引用
16、此时我们就可以在Parent工程中引用SchoolLib静态库了,图示如下:
17、工程中引用SchoolFramework库
18、在SchoolFramework中新建一个测试类,并且公开一个测试方法:
19、在SchoolFramework.h文件中公开测试类的.h文件
20、此时,我们还不能在具体的工程中去引用,我们还需要在Teacher/Targets/Build Phases/Link Binary with Libraries里面添加自定义的framework:
21、在Teacher/Targets/General/Embedded Binaries这里添加自定义的framework
22、SchoolFramework里写的类如果需要在Teacher工程中只引入框架就可以使用,需要在SchoolFramework/Targets/Build Phases里将Project里的头文件移动到Public里的分组中。
23、至此、我们可以在Teacher工程中测试调用SchoolFramework库中定义的方法
24、工程中引入CocoaPods管理
25、终端进入工程根目录下,创建Podfile文件
26、用Vim打开Podfile文件,输入如下结构的内容。
27、执行pod install 命令,引入指定的第三方库。
28、最终的School.xcworkspace工程结构如下图所示:
29、Student工程和Teacher工程的相互引用
30、如果要在项目Studnet中引用Teacher中的内容,那么我们需要修改路径
31、在Student的Build Settings里找到Header Search Paths,添加一项Teacher工程的路径。可以直接将Teacher工程拖过来,Xcode会自动生成路径,并且设置为recursive。
32、在Teacher中创建一个测试类,并添加一个测试方法
33、在Student工程中的ViewController.m中需要同时引入在Teacher工程中创建测试类的.h文件和.m文件
34、最终在Student工程中成功的调用了Teacher工程中测试类的类方法,如下图所示
35、Objective-C和Swift混编:Objective-C调用Swift函数
36、在一个Objective-C项目中第一次创建一个Swift文件的时候,Xcode会提示是否需要创建一个桥接头文件,点击是之后Xcode会自动创建一个桥接文件,文件名为xxxx-Bridging-Header.h
37、需要在OC类中引入头文件,文件格式为 Parent-Swift.h
38、新建一个测试类SecondVC.swift,在SeconVC.swift中定义一个测试方法,如下图所示。然后进行调用。
39、运行代码,会发现调用成功。
40、Objective-C和Swift混编:Swift调用Objective-C方法
41、新建测试类FirstVC,如下图所示,定义一个测试方法
42、在桥接文件中引入FirstVC.h头文件
43、运行代码,会发现调用成功
44、注意事项如下图
完。