300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > swift调用oc_OC与Swift混编 三种场景的实现方式

swift调用oc_OC与Swift混编 三种场景的实现方式

时间:2020-03-03 03:00:36

相关推荐

swift调用oc_OC与Swift混编 三种场景的实现方式

多语言并存时期,混编成为一种必须的方式 ,在多场影中实现OC和Swift语言的并存原来是如此简单

第一种场景,App中实现混编

创建桥接文件*.h

新建一个桥接文件,New File选择Header File创建指定桥接文件project->targets->Build Setting->All->Swift Compilter General->Objective-C-Bridging-Header指定刚刚的新建的桥接文件导入OC头文件(*.h)到桥接文件

如:#import "Log.h"完成调用

Swift文件中直接调用

注:在Swift项目中第一次创建OC文件,Xcode会自动提示创建桥接文件

第二种场景,Framework 中实现混编

创建Famework

创建完成后会生成一个同名头文件*.h将OC头文件(*.h)设置为公开头文件project->targets->Build Phases->Headers->Public,直接拖入导入OC头文件(*.h)到同名头文件

如:#import "Log.h"完成调用

在对外的Swift文件中直接调用

注:对外的类和方法必须public标示才可访问

第三种场景,Pod包中实现混编

在完成第二种场景后,添加*.podspec文件实现Pod

生成*.podspec

运行命令pod spec create [name]生成*.podspec文件编辑*.podspec*.podspec中将OC头文件(*.h)设置为公开头文件

如:spec.public_header_files = "Log.h"#完整的文件信息Pod::Spec.new do |spec| spec.name = "OCSwiftFramework" spec.version = "0.0.1" spec.summary = "OCSwiftFramework" spec.description = <<-DESC OCSWiftFramework DESC spec.homepage = "" spec.license = "MIT"# spec.license = { :type => "MIT", :file => "FILE_LICENSE" }spec.author = { "MLeo" => "iChochy@" } spec.platform = :osx spec.osx.deployment_target = "10.10" spec.source = { :git => "/iChochy/HelloWorld.git", :tag => "#{spec.version}" } spec.source_files = "**/*.{h,m,swift}" spec.exclude_files = "Info.plist" spec.public_header_files = "Flog.h" spec.swift_version = "4.2" end验证*.podspec

运行命令pod lib lint完成验证完成调用

a. 运行命令pod trunk push [NAME.podspec]完成发布

b.Podfile中添加pod "[name]"

c. 运行命令pod install完成pod安装

d. 安装完成后直接调用注:可用pod "[name]", :path => "[path]"本地指定

GitHub:

HelloWorld:/iChochy/HelloWorld.git

联系方式:邮箱:iChochy@网站:源文:/blog//09/04/OC与Swift混编-三种场景的实现方式.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。