Ios 不同的web服务调用不同的视图控制器Restkit

Ios 不同的web服务调用不同的视图控制器Restkit,ios,web-services,ipad,restkit,Ios,Web Services,Ipad,Restkit,我是一名asp.net开发人员,开始学习objective c。几天来一直在努力寻找解决方案: 我对ios开发完全陌生,所以如果我的问题听起来很愚蠢,请原谅我 我有两个表视图控制器: 公告StableViewController和NewsTableViewController 对于这些控制器中的每一个,我都使用rest工具包调用web服务: 这是我在NewsTableViewController中的代码 - (void)viewDidLoad { [super viewDidLoad]; [se

我是一名asp.net开发人员,开始学习objective c。几天来一直在努力寻找解决方案:

我对ios开发完全陌生,所以如果我的问题听起来很愚蠢,请原谅我

我有两个表视图控制器:

公告StableViewController和NewsTableViewController

对于这些控制器中的每一个,我都使用rest工具包调用web服务: 这是我在NewsTableViewController中的代码

- (void)viewDidLoad
{
[super viewDidLoad];
[self sendRequest];

}
- (void)sendRequest
{

//set the base URL
RKURL *baseURL = [RKURL URLWithBaseURLString:@"http://someurl.com/WcfDataService.svc"];
NSString *format=@"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;

     loader.userData=@"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];

}
我在AnnouncementsViewController上执行与上面完全相同的代码(只是更改基本URL和映射)

问题是它只为newstableviewcontroller加载,而不在公告中加载

我读过这个

但我似乎无法理解并应用我的代码

我希望有人能给我们一些启示

致以最良好的祝愿,
里库纳

@PauldeLange感谢您花时间回复。我终于修好了。这句话正是魔术所做的:

 RKObjectManager *objectManager =  [RKObjectManager sharedManager];

打开日志记录,看看它告诉您什么:RKLogConfigureByName(“RestKit/Network”,RKLogLevelTrace);RKLogConfigureByName(“RestKit/ObjectMapping”,RKLogLevelTrace)@PauldeLange感谢您的评论。添加了RKLogLevelTrace和RKLogConfigureByName。对于newstablecontroller,它从web服务返回数据,但是对于announcementstablecontroller,它什么也不返回。它们都在返回数据,只是不是同时返回。我遗漏了什么?传出的URL正确吗?你能把这个URL放进REST客户端并取回数据吗?@PauldeLange如果我把第一个tableviewcontroller上的代码注释掉,第二个DViewcontroller就可以了。反之亦然。这意味着传出URL没有问题。您必须发布RESTkit日志