在Swift项目中使用CocoaPods

今天有学生在群里问如何在Swift项目中使用CocoaPods。其实不管是Swift还是OC的项目,CocoaPods只是一个包管理器,因此使用方式没有任何区别。只不过CocoaPods里的框架都是用OC编写的,在Swift项目中使用的时候就涉及到一个Swift和OC混合使用的问题。实际上我们在很早以前就讲过,并且在http://www.ubuntucollege.cn的Swift视频教程第一课里就讲了,还有博文在这里。下面就简单的介绍一下步骤:

1. 安装CocoaPods,不过如果是国内的小伙伴,如果没有VPN的话,直接按照CocoaPods官网上的方法是不会成功的,原因是被墙了:

sudo gem install cocoapods

2. 淘宝为大家做了一件好事,它架设了一个rubygems的源,下面就修改一下默认的rubygems源地址:

gem sources --remove https://rubygems.org
gem sources -a http://ruby.taobao.org/

先移除默认的源地址,然后将淘宝的rubygems设为默认地址。

3. 安装cocoapods:

sudo gem install cocoapods

安装完成后就可以直接使用cocoapods了。

4. 创建新的项目,或者使用已有的Swift项目:

cd 工程目录
pod search JSONKit

查找所需要的框架:

Setting up CocoaPods master repo
Setup completed (read-only access)


-> GCJSONKit (1.5.0)
   GC's fork of a Very High Performance Objective-C JSON Library.
   pod 'GCJSONKit', '~> 1.5.0'
   - Homepage: https://github.com/gamechanger/JSONKit
   - Source:   https://github.com/gamechanger/JSONKit.git
   - Versions: 1.5.0 [master repo]


-> JSONKit (1.5pre)
   A Very High Performance Objective-C JSON Library.
   pod 'JSONKit', '~> 1.5pre'
   - Homepage: https://github.com/johnezang/JSONKit
   - Source:   https://github.com/johnezang/JSONKit.git
   - Versions: 1.5pre, 1.4 [master repo]


-> JSONKit-NoWarning (1.2)
   A Very High Performance Objective-C JSON Library.
   pod 'JSONKit-NoWarning', '~> 1.2'
   - Homepage: https://github.com/ignazioc/JSONKit-NoWarning
   - Source:   https://github.com/ignazioc/JSONKit-NoWarning.git
   - Versions: 1.2, 1.1 [master repo]

5. 在项目里创建Podfile文件,并将所用到的框架添加进去:

pod 'JSONKit-NoWarning', '~> 1.2'

6. 下载安装框架:

pod install

 

Analyzing dependencies
Downloading dependencies
Installing JSONKit (1.5pre)
Generating Pods project
Integrating client project

[!] From now on use `SoccerTV.xcworkspace`.

安装成功后自动生成工作区。

7. 打开工作区,往项目中添加OC源文件,Xcode自动生成桥接文件,也可以手动创建,并修改工程设置。

bridge

 

8. 在桥接文件中引入框架头文件。

#import <MobileVLCKit/MobileVLCKit.h>
#import <JSONKit/JSONKit.h>

9. 在Swift项目中使用该框架。

var jsonStr: NSString = "{\"name\":\"Zhangsan\"}"
var object = jsonStr.objectFromJSONStringWithParseOptions(JKParseOptionValidFlags)
println("\(object)")

10. 打印结果:

{
    name = Zhangsan;
}

长沙戴维营教育iOS实训基地出品,转载请注明长沙最好的iOS培训基地(http://www.diveinedu.cn)

标签: , , , , , ,
文章分类 iOS 8开发

发表评论