0
나는 asp.net 개발자이고 객관적인 c를 배우기 시작했다. 이 문제를 해결하기 위해 며칠 동안 고생하고 있습니다.다른보기 컨트롤러에 대한 다른 웹 서비스 호출 Restkit
저는 완전히 ios 개발에 익숙합니다. 내 질문에 어리 석다면 용서해주세요.
AnnouncementsTableViewController 및 NewsTableViewController :
나는 2 테이블 뷰 컨트롤러가 있습니다. 이 컨트롤러 임 나머지 키트를 사용하여 웹 서비스를 호출 각각에 대해 : 을 여기에- (void)viewDidLoad
{
[super viewDidLoad];
[self sendRequest];
}
- (void)sendRequest
{
//set the base URL
RKURL *baseURL = [RKURL URLWithBaseURLString:@"http://someurl.com/WcfDataService.svc"];
NSString *[email protected]"json";
NSString *un = @"blah";
NSString *pw = @"blah";
RKObjectManager *objectManager1 = [RKObjectManager objectManagerWithBaseURL:baseURL];
objectManager1.client.baseURL = baseURL;
NSDictionary *queryParams;
queryParams = [NSDictionary dictionaryWithObjectsAndKeys:format,@"format", nil];
objectManager1.client.username=un;
objectManager1.client.password=pw;
//set news mapping
RKObjectMapping *newsMapping = [RKObjectMapping mappingForClass:[News class]];
[newsMapping setSetDefaultValueForMissingAttributes:true];
[newsMapping mapKeyPath:@"NEWSTITLE"
toAttribute:@"name"];
[newsMapping mapKeyPath:@"NEWSBODY"
toAttribute:@"newsBody"];
RKURL *newsURL = [RKURL URLWithBaseURL:[objectManager1 baseURL] resourcePath:@"/NEWS" queryParameters:queryParams];
[objectManager1 loadObjectsAtResourcePath:[NSString stringWithFormat:@"%@?$%@", [newsURL resourcePath], [newsURL query]] usingBlock:^(RKObjectLoader *loader)
{
[loader.mappingProvider setObjectMapping:newsMapping forKeyPath:@"d"];
loader.method = RKRequestMethodGET;
loader.delegate = self;
[email protected]"NewsData";
}];
}
- (void)objectLoader:(RKObjectLoader *)objectLoader didFailWithError:(NSError *)error
{
NSLog(@"Error: %@", [error localizedDescription]);
}
- (void)request:(RKRequest*)request didLoadResponse:(RKResponse*)response {
NSLog(@"response code: %d", [response statusCode]);
}
- (void)objectLoader:(RKObjectLoader *)objectLoader didLoadObjects:(NSArray *)objects
{
NSString* source = (NSString*) objectLoader.userData;
NSLog(@"objects[%d]", [objects count]);
NSLog(@"%@", source);
data2 = objects;
[self.tableView reloadData];
}
NewsTableViewController
에 내 코드입니다 그리고 난 그냥 기본 URL을 변경 (AnnouncementsViewController에 위와 동일한 코드를하고 있어요 및 매핑).문제는 공지 사항이 아닌 newstableviewcontroller에만 적용됩니다.
이 나는이 https://github.com/RestKit/RestKit/wiki/Using-Multiple-Base-URLs-%28and-Multiple-Object-Managers%29
읽을 수 있지만 캔트 이해하고 내 코드에 적용하는 것있다.
누군가가 밝힐 수 있기를 바랍니다.
안부, 응답하는 시간을내어 Rikuna
로깅을 설정하고 알려줍니다 무엇을 참조하십시오 :이 줄은 마법 그랬던 것입니다 RKLogConfigureByName ("RestKit/네트워크", RKLogLevelTrace을); RKLogConfigureByName ("RestKit/ObjectMapping", RKLogLevelTrace); –
@PauldeLange 의견을 보내 주셔서 감사합니다. RKLogLevelTrace 및 RKLogConfigureByName을 추가했습니다. newstablecontroller의 경우 웹 서비스에서 데이터를 반환하지만 announcementstablecontroller의 경우에는 아무 것도 반환하지 않습니다. 둘 다 동시에 데이터를 반환하지 않습니다. 나는 무엇을 놓치고 있습니까? –
나가는 URL이 맞습니까? 이 URL을 REST 클라이언트에 넣고 데이터를 다시 가져올 수 있습니까? –