먼저 나는 영어가 모국어가 아닌 아마 내 문법이 정확하지 않은 말을,하지만 난 내 restkit에 무슨 일이 있었는지 설명하기 위해 최선을 다할 것입니다.Restkit 매핑에 NULL 데이터
나는 최근에 restkit을 학습하고 있습니다. 정말 큰 주제이며 터프합니다.
나는이 api을 사용하고 있습니다.
내가 모두 'current_condition'와 '날씨'여기에 의 값 weatherDesc을 가져 오기 위해 시도해야 할
가 매핑 current_condition에 내 코드입니다 :
-(void)loadCurrentCondition{
NSDictionary *queryParams = @{@"format": @"json"};
[[RKObjectManager sharedManager] getObjectsAtPath:@"/demos/weather_sample/weather.php" parameters:queryParams success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
_myArr = mappingResult.array;
[self Humidity];
}
failure:^(RKObjectRequestOperation *operation, NSError *error) {
NSLog(@"The error is :%@",error);
}];
}
-(void)Humidity{
restkitCurrentCondition *rkCC = [_myArr objectAtIndex:0];
NSLog(@"///////////////////////the humidity is: %ld",rkCC.humidity.longValue);
NSLog(@"//////////////////// the cloudcover is: %ld",rkCC.cloudcover.longValue);
NSLog(@"/////////////// the weatherDesc is %@",rkCC.weatherDesc[0][@"value"]);
NSLog(@"///////// the weatherDesc in weather is %@",rkCC.restkitweather.myweatherDesc[0][@"value"]);
NSLog(@"///////// the weatherDesc in weather is %@",rkCC.restkitweather.myweatherDesc);
}
-(void)configureRestKit{
NSURL *baseURL = [NSURL URLWithString:@"http://www.raywenderlich.com"];
AFHTTPClient *client = [[AFHTTPClient alloc] initWithBaseURL:baseURL];
RKObjectManager *objectManager = [[RKObjectManager alloc] initWithHTTPClient:client];
RKObjectMapping *currentMapping = [RKObjectMapping mappingForClass:[restkitCurrentCondition class]];
[currentMapping addAttributeMappingsFromArray:@[@"cloudcover",@"humidity",@"weatherDesc"]];
[currentMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"current_condition" toKeyPath:@"current_condition" withMapping:currentMapping]];
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:currentMapping method:RKRequestMethodGET pathPattern:@"/demos/weather_sample/weather.php" keyPath:@"data.current_condition" statusCodes:[NSIndexSet indexSetWithIndex:200]];
[objectManager addResponseDescriptor:responseDescriptor];
//weahter weatherDesc
RKObjectMapping *weatherMapping = [RKObjectMapping mappingForClass:[restKitWeather class]];
[weatherMapping addAttributeMappingsFromDictionary:@{@"weatherDesc": @"myweatherDesc"}];
[currentMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"weather" toKeyPath:@"weather" withMapping:weatherMapping]];
}
그것은 나쁜로하지 간다, 그것을 상기 :
2014년 7월 15일 12 : 14 : 26.702 myRestSample [10,961 : 60B] /////////////////////// 습도가 59 2014-07-15 12 : 14 : 26.702 myRestSample [10961 : 60b] /////////////////////////////////// cloudcover는 16 2014년 7월 15일 12 : 14 : 26.703 myRestSample [10,961 : 60B] /////////////// weatherDesc가 2014년 7월 15일 12시 14분 분명하다 26.703 myRestSample [10961 : 60b] ///////// 날씨의 weatherDesc가 (null) 2014-07-15 12 : 14 : 26.703 myRestSample [10961 : 60b] ///////// 날씨에 weatherDesc는
왜 내가 널 데이터를 얻을 않았다
(NULL)입니다 ????????? 이 나는 날씨가 current_condition가 포함되어 있지 않으며 나는 그것을 해결하는 방법을 모르기 때문에 내 키 패스가 잘못 느낌이- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self configureRestKit];
[self loadCurrentCondition];
}
있는 viewDidLoad
에 이러한 방법을 넣어.아무도 도와 줄 수 있습니까?
나는 이미 내 질문을 편집했습니다. 다시 확인하십시오 .2 건의 요청을했습니다. – TianMing
을 수정하는 방법을 알려 드리겠습니다. 가능한 경우 코드로 알려주십시오. :) – TianMing
더 많은 이슈가 있으면 우리는 약간의 시정을 할 것입니다. 당신은 잘 배우고 있으며 노력함으로써 더 잘 배울 것입니다. – Wain