私はrestKitを初めて使用しています。私は 私のウェブ json/xmlを使用して投稿要求を送信する方法を理解していないと私のクラスで受信応答をマップします。いずれにしても、私には助けを与えることができます。 私applicationDelegateに私はベースURLを提供RKObjectManager をインスタンス化しています ::私は使用していたコードはこれですポストを送信し、オブジェクトに応答を要求し、応答を割り当てます。
RKObjectManager* manager = [RKObjectManager objectManagerWithBaseURL:@"https://example.com/services/"];
// Request params in Dictionary
NSArray *objects = [NSArray arrayWithObjects: email, password,
nil];
NSArray *keys = [NSArray arrayWithObjects:@"username",
@"password", nil];
NSDictionary *params = [NSDictionary dictionaryWithObjects:objects
forKeys:keys];
NSLog(@"Manager: %@", [RKObjectManager
sharedManager].description);
// User object Mapping
RKObjectMapping* userMapping = [RKObjectMapping mappingForClass:
[User class]];
[userMapping mapKeyPath:@"userName" toAttribute:@"userName"];
[userMapping mapKeyPath:@"lastName" toAttribute:@"lastName"];
[userMapping mapKeyPath:@"active" toAttribute:@"active"];
[[RKObjectManager sharedManager].mappingProvider
setMapping:userMapping forKeyPath:@"user"];
[[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"/
login" delegate:self];
ポストがサーバにログイン/に送信されると、有効なJSON を返送して、マップする必要がありますそのjsonをUserクラスに追加します。
- (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObjects:
(NSArray*)objects {
RKLogInfo(@"Load collection of Articles: %@", objects);
}
- (void)objectLoader:(RKObjectLoader*)objectLoader didFailWithError:
(NSError *)error
{
NSLog(@"Objecy Loader failed: %@", error);
}
- (void)request:(RKRequest *)request didFailLoadWithError:(NSError
*)error
{
NSLog(@"Request failed");
}
- (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 isXML]) {
///NSLog(@"Seng a JSON request:! \n %@", [request
HTTPBodyString]);
NSLog(@"Got a responce! \n %@", [response bodyAsString]);
}
} else if ([request isDELETE]) {
// Handling DELETE /missing_resource.txt
if ([response isNotFound]) {
NSLog(@"The resource path '%@' was not found.", [request
resourcePath]);
}
}
}
私はそれobjectLoaderメソッド実行トリガされていない、restkitの私の 理解は
[[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"/login"
delegate:self];
が実行されたときにそれらが呼び出されるべきであるということですか?すべてのヘルプは高く評価され:)
はいメソッドを持つクラスは、RKObjectLoaderDelegate – greenLizard
をいくつかのアイデアでさらに編集して実装しています – glogic