RestKit在iOS项目中的使用,包含xcode配置说明

最近在iPhone工程中添加RestKit并编译,但是由于之前找了很多不靠谱的说明文档,导致编译了一天也没有通过编译,总报出莫名其妙的错误。终于在最后的关头找了一篇英文的较为权威的文档才发现自己的问题出在一个很细节的地方。结论就是:不靠谱的文档害死人。
下面就总结一下怎么在xcode项目中使用Restkit。
1. 下载RestKit源码,到官网去下,下载后解压源码,不做过多解释;
2. 在xcode中建立一个iOS项目,并在项目的文件夹中复制一份RestKit源码
RestKit在iOS项目中的使用,包含xcode配置说明
文章图片
RestKit在iOS项目中的使用,包含xcode配置说明_第1张图片" width="650" height="438" style="border:1px solid black; ">
3. 将RestKit中的RestKit.xcodeproj文件拖动到xcode的资源管理器中
RestKit在iOS项目中的使用,包含xcode配置说明
文章图片
RestKit在iOS项目中的使用,包含xcode配置说明_第2张图片" width="650" height="365" style="border:1px solid black; ">
4. 选择最顶层的工程,然后选择中间栏PROJECT中的那个项目,进行设置
(1)找到Build Setting中的Header Search Path,然后设置其值为"$(SOURCE_ROOT)/RestKit/Build"
RestKit在iOS项目中的使用,包含xcode配置说明
文章图片
RestKit在iOS项目中的使用,包含xcode配置说明_第3张图片" width="650" height="346" style="border:1px solid black; ">
(2)找到Build Setting中的Library Search Path,然后设置其值为"$(SOURCE_ROOT)/RestKit/Build/$(BUILD_STYLE)-$(PLATFORM_NAME)"
RestKit在iOS项目中的使用,包含xcode配置说明
文章图片
RestKit在iOS项目中的使用,包含xcode配置说明_第4张图片" width="650" height="346" style="border:1px solid black; ">
5. 选择中间栏TARGET中的一项,然后点击Build Phase选项卡,在Target Dependence中添加RestKit
RestKit在iOS项目中的使用,包含xcode配置说明
文章图片
RestKit在iOS项目中的使用,包含xcode配置说明_第5张图片" width="650" height="346" style="border:1px solid black; ">
6. 在Link Binary with Libraries中添加如下包名称:
libRestKitCoreData.a
libRestKitJSONParserYAJL.a
libRestKitNetwork.a
libRestKitObjectMapping.a
libRestKitSupport.a
CFNetwork.framework
CoreData.framework
MobileCoreServices.framework
SystemConfiguration.framework
RestKit在iOS项目中的使用,包含xcode配置说明
文章图片
RestKit在iOS项目中的使用,包含xcode配置说明_第6张图片" width="650" height="346" style="border:1px solid black; ">
7. 头文件中引入
#import
#import
点击编译,如果没问题的话就编译成功了。

现在我们进行一个简单的测试:
在applicationDidFinishLaunching函数中添加如下代码:

- (void)applicationDidFinishLaunching:(UIApplication*)application withOptions:(NSDictionary*)options {

RKClient* client = [RKClient clientWithBaseURL:@"http://restkit.org"];
}

测试如下:
RestKit在iOS项目中的使用,包含xcode配置说明
文章图片
#import

// 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 {
}

@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

RestKit在iOS项目中的使用,包含xcode配置说明
文章图片
【RestKit在iOS项目中的使用,包含xcode配置说明】附上英文原文网址:http://liebke.github.com/restkit-github-client-example

    推荐阅读