REST APIで動作するサーバーのデータを更新したいと思います。私はiosデバイスからRESTKITを使用しています。しかし、私はrestkitでPUTを使用する方法を見つけることができませんでした。IOS RESTKIT HTTP PUTの例
私はkey: "user_id"の値: "2"のようなデータを送る必要があります。誰もこの問題を解決するために私を助けて... :(
REST APIで動作するサーバーのデータを更新したいと思います。私はiosデバイスからRESTKITを使用しています。しかし、私はrestkitでPUTを使用する方法を見つけることができませんでした。IOS RESTKIT HTTP PUTの例
私はkey: "user_id"の値: "2"のようなデータを送る必要があります。誰もこの問題を解決するために私を助けて... :(
SOKeyValue.hしてくださいすることができます。お電話のためのパラメータとして使用するシリアル化されたオブジェクト
#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を使用するサービスを実装することができます。コールを実装するオブジェクトでは、Restkitデリゲートを忘れないでください。RKObjectLoaderDelegate:
あなたの(.M)で#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
:
- (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を持っていけない、それはdiffcultですコード構造について助けてください。ご質問がございましたら、お気軽にお問い合わせください。
ありがとう..ちょうどそれを実行可能にしました.. – Samin
スタートコードを作成しましたか?たとえば、Restkitを設定する。あなたは仲間や仲間を使ったことがありますか? – Beber
私はRESTkitを設定しました。しかし、私は今までそれを使用していませんでした。 POSTとGETのためにASIFormDataRequestを使用しましたが、PUTを使用しようとすると問題が発生します。だから私はRESTKITを切り替えることにしました。しかし私が得たチュートリアルでは、PUT(私が使いたい方法)のための適切な例が見つかりませんでした。だから誰かがそれを行う方法を知っているなら、それは私にとって非常に役に立つでしょう.thanks – Samin
RKObjectManagerを使用している場合は、 "put"をどのように行うことができるのか分かります。 RKObjectManagerを使用した例が必要な場合は、私がお手伝いします。 – Beber