zoukankan      html  css  js  c++  java
  • RestKit学习1:引用RestKit项目

          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/

  • 相关阅读:
    一本通1590恨 7 不成妻
    一本通1591数字计数
    一本通1589不要 62
    一本通1588数字游戏
    一本通1587【例 3】Windy 数
    一本通1586【 例 2】数字游戏
    一本通1585【例 1】Amount of Degrees
    一本通1584骑士
    一本通1583叶子的染色
    一本通1581旅游规划
  • 原文地址:https://www.cnblogs.com/ghj1976/p/2616211.html
Copyright © 2011-2022 走看看