0

私はiOS開発に不慣れです。RestKitを使用してWebサービスにアクセスし、データをカスタムオブジェクトにマップしたいと思います。

検索方法に到達していると確信しています。ただし、どちらのコールバックメソッド(didLoadObjectsまたはdidFailWithError)もトリガーされていません。私のコードは以下の通りです。ご協力いただきありがとうございます!

編集:私は単純なRKClientリクエストで同じことをしようとしましたが、それらのコールバックメソッドもトリガーされませんでした。「リクエストの進行状況の監視」メソッドも実装しましたが、これらのメソッドもトリガーされませんでした。デリゲートを正しく割り当てていませんか?

編集2:おそらくリクエストがキューでスタックしているようです。非同期で送信するように強制すると、メソッド「requestWillPrepareForSend」と「requestDidStartLoad」がトリガーされます。他のメソッドはトリガーされません。

- (void)search{

NSString *baseURL = @"sws.acpl.lib.in.us:8080/symws/rest/";
NSURL *url=[NSURL URLWithString:baseURL];

RKObjectManager *manager=[RKObjectManager objectManagerWithBaseURL:url];

RKObjectMapping *availabilityMapping = [RKObjectMapping mappingForClass:[TitleAvailabilityInfo class]];

[availabilityMapping mapAttributes:@"totalAvailableCopies", @"holdable", nil];

RKObjectMapping *titleMapping = [RKObjectMapping mappingForClass:[SearchResultsTitle class]];
[titleMapping mapAttributes:@"titleID",@"title",@"author",@"materialType",@"yearOfPublication",@"ISBN",@"callNumber", nil];
[titleMapping mapKeyPath:@"TitleAvailabilityInfo" toRelationship:@"titleAvailabilityInfo" withMapping:availabilityMapping];

RKObjectMapping *searchResponseMapping = [RKObjectMapping mappingForClass:[SearchCatalogResponse class]];
[searchResponseMapping mapAttributes:@"queryID",@"totalHits",@"firstHitDisplayed",@"lastHitDisplayed", nil];
[searchResponseMapping mapKeyPath:@"HitlistTitleInfo" toRelationship:@"results" withMapping:titleMapping];



[manager.mappingProvider setMapping:searchResponseMapping    forKeyPath:@"SearchCatalogResponse"];

[manager loadObjectsAtResourcePath:@"standard/searchCatalog" delegate:self];

}

- (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObjects:(NSArray*)objects {

NSLog(@"loaded");
}

- (void)objectLoader:(RKObjectLoader*)objectLoader didFailWithError:(NSError*)error {
NSLog(@"failed");
}
4

1 に答える 1

0

問題はURLにありました。最初は「http://」をやめました。ご協力いただきありがとうございます。

于 2012-08-20T13:18:15.243 に答える