导航

RestKit学习1:引用RestKit项目

Posted on 2012-07-31 08:36  蝈蝈俊  阅读(1692)  评论(1编辑  收藏  举报

      RestKit 是一个开源的 objective-c 框架,允许在 iOS 和 Mac OS X 的 Objective-C 中与 RESTful Web 服务进行交互,包含简单的 HTTP request/response API ,带有强大的对象映射系统用于减少代码长度。RestKit 可降低 JSON/XML 的处理的资源消耗,支持通过 SBJSON 和 YAJL 进行 JSON 解析。

RestKit 官网:http://restkit.org/

下面的例子我们是基于RestKit v0.10.1 和XCode 4.4。一定要注意版本号,我曾经碰到过XCode 4.3.2版本用RestKit做的一个功能,在XCode4.3.3下就不能用,报各种诡异的错误问题。

我们项目中引用RestKit可以有两种方法:

1、引用静态库(*.a文件)
2、Cross-Project Reference(跨项目引用)

下面分别给出例子。

引用静态库

获得静态库

1、从官网下载源码压缩包,这里下载的是 v0.10.1 的压缩包,解压缩。

2、解压缩后,对应的目录下有项目文件: RestKit.xcodeproj ,打开它。

3、修改 Active Scheme

Snip20120727 3

为何选择这个,是因为这个可以为我们生成静态库 *.a 文件。

我们在下图中,可以清晰的看到RestKit这个构建目标(Target)指向的是一个静态库。 构建目标是指定了一系列的编译和连接设置,对于静态库就是生成一个.a文件。

Snip20120727 4

4、Product -> Build 编译项目

在 Build 目录下的 Products 目录下可以看到 .a 文件:libRestKit.a

相关技术参看: http://www.cnblogs.com/speeding/archive/2011/09/29/2195252.html

现在我们准备好了静态库。 

引用静态库

新建一个我们自己的项目,这里我的项目名叫testRestKit02,

1、把我们上步编译好的静态库和头文件copy到我们项目目录下,方便管理使用。

如下图,一个头文件目录和一个静态库*.a文件。

Snip20120730 5

2、在这个工程的build phases中,将libtestlib.a加到link Binary With Libraries中。

Snip20120730 3 

参考:http://www.cnblogs.com/speeding/archive/2011/09/29/2195252.html

3、Link Libraries 中增加RestKit需要的framework:

这些包括:

  • CFNetwork.framework – 需要网络的支持.
  • SystemConfiguration.framework – 需要检测网络是否可用.
  • MobileCoreServices.framework – RestKit必须的。自动检测上传文件的MIME类型。
  • CoreData.framework – RestKit必须的。支持CoreData。
  • Security.framework
  • QuartzCore.framework
  • libxml2.dylib

Snip20120801 5
4、配置项目的 Header Search Paths

在项目的Build Settings中,设置头文件和库文件的搜索目录

Snip20120730 6

这里我们的设置的搜索路径如下:

搜索路径
Header Search Paths     "$(SRCROOT)/testRestKit02/"
library Search Paths          "$(SRCROOT)/testRestKit02/" $(inherited)

5、Other Linker Flags

在 Build Settings 项的 other linker flags 中输入 -ObjC -all_load

Snip20120801 3

6、在项目中引用需要的头文件,如下

#import <RestKit/RestKit.h>

#import <RestKit/CoreData.h>// If you are using Core Data…

7、编译项目,没有错误,这样我们就完成了对RestKit的引用。 

 

跨项目引用

1、从官网下载源码压缩包,这里下载的是 v0.10.1 的压缩包,解压缩。

2、新建一个自己的项目,这里项目名叫:testRestKit03

3、拖动 RestKit.xcodeproj 文件到我们的项目,

注意需要拖动testRestKit03的子项目的位置。

Snip20120730 7

拖动好后的位置图如下:

Snip20120730 8

4、 Other Linker Flags

在 Build Settings 项的 other linker flags 中输入 -ObjC -all_load

Snip20120801 3

注意,如果你运行时收到错误:selectors not being found 可以试图删除  -all_load

5、设置头文件搜索目录

$(BUILT_PRODUCTS_DIR)/http://www.cnblogs.com/Headers

Snip20120731 12

 

 

6、在Build Phases 的Target Dependencies 中增加引用项目的静态库。如下:

选择界面:

Snip20120731 10

增加好后的界面:

Snip20120730 9

当然,你也可以通过 targets 的summary栏的Linked Frameworks and Libraries来添加。参看:

http://segmentfault.com/question/1054/xcode4%E9%87%8C%E6%80%8E%E4%B9%88%E6%B7%BB%E5%8A%A0target-dependency

Snip20120801 4

 

7、Link Libraries 中增加RestKit需要的framework,跟上面的做法一样:

Linked Frameworks and Libraries 中也一样可以添加。

下面根据你的操作系统是iOS,还是OS X两个二选一,

  • libRestKit.a - RestKit for iOS static library
  • RestKit.framework - RestKit for OS X framework

同样,下面需要增加的要根据操作系统进行选择,没有表明的是适用于所有系统。

  • CFNetwork.framework on iOS
  • CoreData.framework
  • MobileCoreServices.framework on iOS or CoreServices.framework on OS X
  • Security.framework
  • SystemConfiguration.framework
  • QuartzCore.framework on iOS
  • libxml2.dylib

 

7、在项目中引用需要的头文件,如下

#import <RestKit/RestKit.h>

#import <RestKit/CoreData.h>// If you are using Core Data…

8、编译项目,没有错误,这样我们就完成了对RestKit的引用。 

 

这里没有设置头文件、库文件的搜索路径,是因为系统默认替我们生成的就是正确的。

参考:https://github.com/RestKit/RestKit/wiki/Installing-RestKit-in-Xcode-4.x

 

参考资料:

http://mobile.tutsplus.com/tutorials/iphone/restkit_ios-sdk/