Swift & OC

混编配置

Swift访问OC: 只需要在桥接文件 ProductName-Bridging-Header.h 中导入需要暴露给Swift的OC类,即可在Swift中访问相应OC类及方法。

创建swift 文件时候,xcode 会提示创建 桥接文件。 xxx-Bridging-Header.h

OC访问Swift: 在OC类中导入 ProductName-Swift.h 文件(Target名称不同,对应文件名称也不同,工程配置中能看到),即可访问Swift中暴露给OC的属性和方法。

build 会系统生成供oc调用的 .h,包含类及 public 接口属性。

OC-Swift Demo

Carthage

brew update
brew install carthage

安装

还是以Mac库管理 homebrew
brew upgrade carthage

终端 cd  到项目下创建文件:   touch Cartfile

    github "Alamofire/Alamofire" ~> 5.0
    github "SwiftyJSON/SwiftyJSON”

升级-第三方库

carthage update --platform iOS

完成后在项目文件夹下会生成 Carthage文件夹。

Xcode 配置

  • General中 导入build的库, /Carthage/build/iOS/xxx.framework
  • build Phases
    新增一个 “+” new run script phase

    Shell 下方文本区域输入:  /usr/local/bin/carthage copy-frameworks
    Input Files:
    $(SRCROOT)/Carthage/Build/iOS/Alamofire.framework
    

Sourcetree git 如何忽略 carthage build文件

# Add this line if you want to avoid checking in source code from Carthage dependencies.

OCSwift/Carthage/Checkouts
OCSwift/Carthage/Build

还是觉得 cocoapods 省事,因为Carthage 下载完之后还是要配置.
cocoapods 集成度更高,也更省心。而有些人喜欢手动配置这些第三方库,这样 workspace 会更干净,那么使用 Carthage 就会很方便。