2012-08-07 2 views
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

+0

로깅을 설정하고 알려줍니다 무엇을 참조하십시오 :이 줄은 마법 그랬던 것입니다 RKLogConfigureByName ("RestKit/네트워크", RKLogLevelTrace을); RKLogConfigureByName ("RestKit/ObjectMapping", RKLogLevelTrace); –

+0

@PauldeLange 의견을 보내 주셔서 감사합니다. RKLogLevelTrace 및 RKLogConfigureByName을 추가했습니다. newstablecontroller의 경우 웹 서비스에서 데이터를 반환하지만 announcementstablecontroller의 경우에는 아무 것도 반환하지 않습니다. 둘 다 동시에 데이터를 반환하지 않습니다. 나는 무엇을 놓치고 있습니까? –

+0

나가는 URL이 맞습니까? 이 URL을 REST 클라이언트에 넣고 데이터를 다시 가져올 수 있습니까? –

답변

0

@PauldeLange 감사합니다. 나는 그것을 마침내 고쳤다.

RKObjectManager *objectManager = [RKObjectManager sharedManager];