本文转载至 http://www.cnblogs.com/visen-0/archive/2012/05/03/2480693.html

最近在iPhone工程中添加RestKit并编译,但是由于之前找了很多不靠谱的说明文档,导致编译了一天也没有通过编译,总报出莫名其妙的错误。终于在最后的关头找了一篇英文的较为权威的文档才发现自己的问题出在一个很细节的地方。结论就是:不靠谱的文档害死人。

下面就总结一下怎么在xcode项目中使用Restkit。

1. 下载RestKit源码,到官网去下,下载后解压源码,不做过多解释;

2. 在xcode中建立一个iOS项目,并在项目的文件夹中复制一份RestKit源码

3. 将RestKit中的RestKit.xcodeproj文件拖动到xcode的资源管理器中

4. 选择最顶层的工程,然后选择中间栏PROJECT中的那个项目,进行设置

(1)找到Build Setting中的Header Search Path,然后设置其值为"$(SOURCE_ROOT)/RestKit/Build"

(2)找到Build Setting中的Library Search Path,然后设置其值为"$(SOURCE_ROOT)/RestKit/Build/$(BUILD_STYLE)-$(PLATFORM_NAME)"

5. 选择中间栏TARGET中的一项,然后点击Build Phase选项卡,在Target Dependence中添加RestKit

6. 在Link Binary with Libraries中添加如下包名称:

libRestKitCoreData.a

libRestKitJSONParserYAJL.a

libRestKitNetwork.a

libRestKitObjectMapping.a

libRestKitSupport.a

CFNetwork.framework

CoreData.framework

MobileCoreServices.framework

SystemConfiguration.framework

7. 头文件中引入

#import <RestKit/RestKit.h>

#import <RestKit/CoreData/CoreData.h>

点击编译,如果没问题的话就编译成功了。

现在我们进行一个简单的测试:

在applicationDidFinishLaunching函数中添加如下代码:

- (void)applicationDidFinishLaunching:(UIApplication*)application withOptions:(NSDictionary*)options {  
    RKClient* client = [RKClient clientWithBaseURL:@"http://restkit.org"];  
}

测试如下:

#import <RestKit/RestKit.h>  

// Here we declare that we implement the RKRequestDelegate protocol  
// Check out RestKit/Network/RKRequest.h for additional delegate methods
// that are available.
@interface RKRequestExamples : NSObject <RKRequestDelegate> {
} @end @implementation RKRequestExamples - (void)sendRequests {
// Perform a simple HTTP GET and call me back with the results
[[RKClient sharedClient] get:@"/foo.xml" delegate:self]; // Send a POST to a remote resource. The dictionary will be transparently
// converted into a URL encoded representation and sent along as the request body
NSDictionary* params = [NSDictionary dictionaryWithObject:@"RestKit" forKey:@"Sender"];
[[RKClient sharedClient] post:@"/other.json" params:params delegate:self]; // DELETE a remote resource from the server
[[RKClient client] delete:@"/missing_resource.txt" delegate:self];
} - (void)request:(RKRequest*)request didLoadResponse:(RKResponse*)response {
if ([request isGET]) {
// Handling GET /foo.xml if ([response isOK]) {
// Success! Let's take a look at the data
NSLog(@"Retrieved XML: %@", [response bodyAsString]);
} } else if ([request isPOST]) { // Handling POST /other.json
if ([response isJSON]) {
NSLog(@"Got a JSON response back from our POST!");
} } else if ([request isDELETE]) { // Handling DELETE /missing_resource.txt
if ([response isNotFound]) {
NSLog(@"The resource path '%@' was not found.", [request resourcePath]);
}
}
} @end

附上英文原文网址:http://liebke.github.com/restkit-github-client-example

<转>RestKit在iOS项目中的使用,包含xcode配置说明的更多相关文章

  1. ios项目中引用其他项目复习

    ios项目中引用其他开源项目,今天再次复习了,记个备注. 1. 将开源项目的.xcodeproj拖入项目frameworks 2. Build Phases下 Links Binary With Li ...

  2. React Native(ios)项目中logo,启动屏设置

    由于logo和启动屏尺寸多,react native(ios)中没有命令可以自动生成各种的尺寸,所以可以使用以下办法:在ionic项目中生成(使用命令:ionic resources)后,再粘贴到re ...

  3. iOS-C文件添加到iOS项目中,运行报错

    iOS-C文件添加到iOS项目中,运行报错 问题: 往项目中添加一个空的c文件, 编译运行; 出现2,30个编译错误. 原因: 由于在项目中添加了Pch文件,在文件中所有代码还没有开始运行之前, pc ...

  4. iOS项目中常见的文件

    html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...

  5. XamarinSQLite教程Xamarin.iOS项目中打开数据库文件

    XamarinSQLite教程Xamarin.iOS项目中打开数据库文件 以下是打开MyDocuments.db数据库的具体操作步骤: (1)将Mac电脑上的MyDocuments.db数据库移动到W ...

  6. XamarinSQLite教程在Xamarin.iOS项目中定位数据库文件

    XamarinSQLite教程在Xamarin.iOS项目中定位数据库文件 开发者可以在指定的路径中找到复制的数据库文件,具体的操作步骤如下: (1)单击Mac电脑中Finder菜单中的“前往”|“前 ...

  7. 在Xamarin.iOS项目中使用预设数据库

    在Xamarin.iOS项目中使用预设数据库 当开发者准备好一个预设数据库文件后,就可以将这个数据库文件添加到创建的项目中了.本节将分别在Xamarin.iOS和Xamarin.Android项目中使 ...

  8. 给iOS项目中添加图片,并通过UIImageView引用和显示该UIImage图片

    [问题] 关于iOS/iPhone中的文件选择对话框,用于用户去选择图片等文件 过程中,问题转换为,需要给当前iOS项目中,添加一个图片. 类似于Windows开发中的资源文件,其中图片文件属于资源的 ...

  9. ios项目中安装和使用CocoaPods

    CocoaPods是什么? http://code4app.com/article/cocoapods-install-usage http://blog.csdn.net/jjmm2009/arti ...

随机推荐

  1. 一个架构合理的UITableView应该是如何的?

    原文: http://www.chentoo.com/?p=200 iOS 开发中,UITableView 应该是最经常使用到的了.完毕一个UITableView应该实现他的DataSource和De ...

  2. PHP 导出 CSV 文件用 Excel 打开出现中文乱码

    本篇文章由:http://xinpure.com/php-export-csv-file-opened-by-excel-appear-garbled/ 乱码情况 写了一段导出 CSV 文件的代码,可 ...

  3. android的五大布局(layout)

    Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建 筑里的砖瓦.组件按照布局的要求依次排列,就组成了用户所看见的界面.Android的五大布局分别是LinearLa ...

  4. kettle--组件(1)--值映射

    组件:值映射 如下如所示: 首先,给出官方给出的文档: 个人理解: Target field name:可以理解为将source column的字段复制为另一个target column的名字. De ...

  5. JiaThis™“分享到”侧栏代码

    风格:迷你: 猜你喜欢: 开启 使用说明: 复制并粘贴下面的JS代码,放到您的网页,可以在<body>和</body>的之间网页的任意位置放置.如果您的网站使用的模板,     ...

  6. C# JSON格式数据高级用法

     JSON简介 JSON(全称为JavaScript ObjectNotation) 是一种轻量级的数据交换格式.它是基于JavaScript语法标准的一个子集.JSON采用完全独立于语言的文本格式, ...

  7. Android---Handler消息处理机制

    搞Android的人都知道.android是不同意你在子线程中更新UI操作的.这主要出于线程安全方面的考虑.通常的做法是在主线程中创建一个Handler对象,在子线程中创建一个Message对象.该M ...

  8. C++ opencv高速样例学习——读图显示

    1.关键函数 1. 读入图片 imread(图片或位置,显示格式)默觉得:IMREAD_COLOR 显示格式: IMREAD_UNCHANGED =-1    // 8bit, color or no ...

  9. 两种方法一句代码隐藏Activity的标题栏

    把Activity的标题栏隐藏有两种方法.一种是在在Activity里面设置javacode.还有一种是在项目的清单文件AndroidManifest.xml中设置模版样式. 一.在Activity中 ...

  10. Spring Boot(四):利用devtools实现热部署,改动代码自动生效

    一.前言 spring-boot-devtools是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去.原理是在发现代码有更改之后,重新启动应用,但是速度比手动停止后 ...