Ios RestKit-从Rails应用程序获取JSON数组
我想通过我的iOS应用程序获取此JSON数据:。。。。RestKit试图从url获取这些用户,但返回0个对象,并表示“在搜索的关键路径中未找到可映射的表示形式。没有响应描述符与加载的响应匹配。” 请帮我找出我遗漏了什么或做错了什么!我已经为此奋斗了好几个星期了 我有Xcode 5.0.2,我成功地安装了带有Cocoapods的RestKit和一个如下所示的pod文件:Ios RestKit-从Rails应用程序获取JSON数组,ios,objective-c,json,get,restkit-0.20,Ios,Objective C,Json,Get,Restkit 0.20,我想通过我的iOS应用程序获取此JSON数据:。。。。RestKit试图从url获取这些用户,但返回0个对象,并表示“在搜索的关键路径中未找到可映射的表示形式。没有响应描述符与加载的响应匹配。” 请帮我找出我遗漏了什么或做错了什么!我已经为此奋斗了好几个星期了 我有Xcode 5.0.2,我成功地安装了带有Cocoapods的RestKit和一个如下所示的pod文件: platform :ios, '6.0' pod 'RestKit', '~> 0.22.0' pod 'RestKit/
platform :ios, '6.0'
pod 'RestKit', '~> 0.22.0'
pod 'RestKit/Testing'
pod 'RestKit/Search'
我的AppDelegate.m文件如下(didFinishLaunchingWithOptions方法):
在启动应用程序时首先加载的视图控制器的viewDidLoad方法中有以下代码:
- (void)viewDidLoad
{
[super viewDidLoad];
RKObjectManager *manager = [RKObjectManager sharedManager];
[manager getObjectsAtPath:@"/users"
parameters:nil
success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult)
{
NSLog(@"Loaded databases: %@", [mappingResult array]);
}
failure:^(RKObjectRequestOperation *operation, NSError *error)
{
NSLog(@"Error: %@", [error localizedDescription]);
}];
// Do any additional setup after loading the view, typically from a nib.
}
你必须:
@interface User : NSObject
@property (nonatomic, copy) NSNumber *userID;
@property (nonatomic, copy) NSString *name;
...
@end
RKObjectMapping *mapping = [RKObjectMapping mappingForClass:[User class]];
[mapping addAttributeMappingsFromDictionary:@{
@"name": @"name",
@"id": @"userID"
...
}];
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:mapping
method:RKRequestMethodAny
pathPattern:nil
keyPath:nil
statusCodes:nil];
...
RKObjectRequestOperation *operation = [[RKObjectRequestOperation alloc] initWithRequest:request
responseDescriptors:@[responseDescriptor]];
[operation setCompletionBlockWithSuccess:^(RKObjectRequestOperation *operation, RKMappingResult *result) {
NSLog(@"The public timeline Tweets: %@", [result array]);
} failure:nil];
[operation start];
看看例子 那么“RKObjectRequestOperation*operation…”部分及其下面的部分是否仍在该用户类中?“[操作开始]”代码何时运行?
@interface User : NSObject
@property (nonatomic, copy) NSNumber *userID;
@property (nonatomic, copy) NSString *name;
...
@end
RKObjectMapping *mapping = [RKObjectMapping mappingForClass:[User class]];
[mapping addAttributeMappingsFromDictionary:@{
@"name": @"name",
@"id": @"userID"
...
}];
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:mapping
method:RKRequestMethodAny
pathPattern:nil
keyPath:nil
statusCodes:nil];
...
RKObjectRequestOperation *operation = [[RKObjectRequestOperation alloc] initWithRequest:request
responseDescriptors:@[responseDescriptor]];
[operation setCompletionBlockWithSuccess:^(RKObjectRequestOperation *operation, RKMappingResult *result) {
NSLog(@"The public timeline Tweets: %@", [result array]);
} failure:nil];
[operation start];