![](/img/trans.png)
[英]Restkit 0.10.0 & ios 6.1 - objectLoaderWithResourcePath:delegate method not making http call
[英]IOS RESTKIT HTTP PUT example
我想更新在 REST API 中运行的服务器中的数据。我正在使用来自 ios 设备的 RESTKIT。 但我找不到如何在 restkit 中使用 PUT。
我必须发送像 key:"user_id" value:"2" 这些格式的数据。 谁能帮我解决这个问题.. :(
SOKeyValue.h:序列化的 object 用作您调用的参数。
#import <Foundation/Foundation.h>
@interface SOKeyValue : NSObject
@property (nonatomic, retain) NSString* key;
@property (nonatomic, retain) NSString* value;
@end
下面是初始化 Restkit 的简化代码:
/*
This part of code must be executed only one time in your application
*/
//To see logs
RKLogConfigureByName("RestKit/Network", RKLogLevelTrace);
//Init with good domain
RKObjectManager* manager = [RKObjectManager objectManagerWithBaseURL:@"http://mydomain.dev/ui/v1"];
//Indicate to use JSON
[RKObjectManager sharedManager].serializationMIMEType = RKMIMETypeJSON;
//Route path when you call a PUT with SOKeyValue class
[manager.router routeClass:[SOKeyValue class] toResourcePath:@"/yourpath" forMethod:RKRequestMethodPUT];
//Serialization for SOKeyValue class
RKObjectMapping* keyvalueSerializationMapping = [RKObjectMapping mappingForClass:[NSMutableDictionary class] ];
[authSerializationMapping mapAttributes:@"key", @"value", nil];
[[RKObjectManager sharedManager].mappingProvider setSerializationMapping:keyvalueSerializationMapping forClass:[SOKeyValue class] ];
现在我们可以实现一个使用 PUT 的服务。 在将实现调用的 object 中,不要忘记 restkit 委托RKObjectLoaderDelegate :
#import <Foundation/Foundation.h>
#import <RestKit/RestKit.h>
#import "SOKeyValue.h"
@interface MyViewOrMyServiceObject: NSObject <RKObjectLoaderDelegate>
- (void)putKeyValue;
- (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObjects:(NSArray*)objects;
- (void)objectLoader:(RKObjectLoader*)objectLoader didFailWithError:(NSError*)error;
@end
在你的 (.m) 中:
- (void)putKeyValue
{
SOKeyValue *keyvalue = [[SOKeyValue alloc] init];
keyvalue.key = @"k";
keyvalue.value = @"2";
[[RKObjectManager sharedManager] putObject:keyvalue delegate:self];
[keyvalue release];
}
您可以在跟踪中查看状态代码,并使用回调函数:
- (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObjects:(NSArray*)objects;
- (void)objectLoader:(RKObjectLoader*)objectLoader didFailWithError:(NSError*)error;
所以我家里没有MAC,很难帮助你了解代码结构。 如果您有任何疑问,请不要犹豫。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.