一、简介
Swift
作为一门新语言已经以高效和简洁俘获众多开发者的心,然而她还处于发展阶段,许多第三方库并不是都有Swift
版,而且许多旧的项目用的都是OC
,所以用OC
和Swift
混编是许多项目正在使用的方法。Target
是Xcode
功能强大的体现,如果我们需要使用同一套代码实现不同配置,例如不同的bundleID
、app
名称、appicon
等,发布到不同平台iPhone
、iPad
,就可以通过新建target
来实现同一套代码不同配置的管理。
二、OC
和Swift
混编
1、OC
工程中混编Swift
语言,新建swift
文件
2、点击Create
按钮,Xcode
会弹窗提示是否创建Objective-C
桥接头文件
点击Create Bridging Header
按钮创建,即在swift文件相同目录创建了Objective-C
桥接头文件
Swift
中调用OC
:将Swift
中需要用到的头文件添加到Objective-C
桥接头文件中
OC
中调用Swift
:将头文件"工程名称-Swift.h"
导入需要调用到的文件中
3、需要在target
中配置的参数
桥接文件的设置信息
三、添加Target
1、选中target
按Command+D
复制target
或者右击菜单选中Duplicate
复制出一份target
2、双击target
重命名
3、修改scheme
名称
选中scheme
,然后在点击一次(不是双击)
进入编辑状态
进入编辑状态
修改完成
查看scheme
当我们新建
target
的时候会自动生成一个与target
同名的scheme
,我们可以根据需要修改scheme
的名称,如果只有一个对应scheme
最好改为和target
同名
添加完target
我们会发现,swift
的桥接头文件名称跟着target
的名称变化
原来swift
桥接文件与target
绑定的
这时编译新建的PrivatePodTest
报错
提示不存在PrivatePodDemo-Swift.h
文件
我们可以通过新建一个头文件Swift.h
使用条件编译来包含swift
桥接头文件
新建头文件Swift.h
,注意两个target
都要勾选
在新建的目标PrivatePodTest
添加TEST
预编译标识符,Debug
模式和Release
模式都要加
在Swift.h
文件中添加条件编译代码如下
#ifdef TEST
#import "PrivatePodTest-Swift.h"
#else
#import "PrivatePodDemo-Swift.h"
#endif
OC
需要调用Swift
的文件中换成导入Swift.h
头文件,这时两个target
都编译成功了
四、Podfile
修改
platform :ios,'8.0'
target 'PrivatePodDemo' do
pod 'MJExtension'
pod 'YYKit'
end
target 'PrivatePodTest' do
pod 'MJExtension'
end
网友评论