gpt4 book ai didi

ios - 无法使用 Forecastr 包装器的 JSON 结果

转载 作者:行者123 更新时间:2023-11-29 13:11:46 26 4
gpt4 key购买 nike

我开始使用 Objective-C,似乎无法提取 AFNetworking 提取的数据以用作标签文本等。我​​将它用于由 Forecast.io 支持的天气应用程序,并且Forecastr API包装器。如果 API 正在将 JSON 写入字典,我似乎找不到它。

在主视图 Controller 中:

[forecastr getForecastForLocation:location time:nil exclusions:nil success:^(id JSON) {
NSLog(@"JSON response was: %@", JSON);
NSLog(@"Testing: %@", [JSON valueForKey:kFCSummary]);

} failure:^(NSError *error, id response) {
NSLog(@"Error while retrieving forecast: %@", [forecastr messageForError:error withResponse:response]);
}];
}

第一行 NSLog 将返回完整的 JSON 对象、序列化和所有内容,但第二行只是输出 NULL。

在 Forecastr.m 文件中:

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString]];
if (self.callback) {
AFHTTPRequestOperation *httpOperation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[httpOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSString *JSONP = [[NSString alloc] initWithData:responseObject encoding:NSASCIIStringEncoding];
if (self.cacheEnabled) [self cacheForecast:JSONP withURLString:cacheKey];
success(JSONP);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
failure(error, operation);
}];
[pendingRequests addObject:httpOperation];
[forecastrQueue addOperation:httpOperation];
} else {
AFJSONRequestOperation *jsonOperation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request
success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
if (self.cacheEnabled) [self cacheForecast:JSON withURLString:cacheKey];
success(JSON);
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON){
failure(error, JSON);
}];
[pendingRequests addObject:jsonOperation];
[forecastrQueue addOperation:jsonOperation];
}

我可以看出这是针对缓存预测的读取,如果缓存太旧则拉取新的 JSON 文件。但我不知道它把 JSON 放在哪里,而且它不在大多数教程和资源使用的字典中。

我已经尝试了很多不同的方法,比如创建我自己的字典,但它不会在其中添加 JSON 对象。我还尝试将返回的 JSON 对象用作字典和键值对,但似乎没有任何效果。几天来我一直在用头撞墙,但几乎没有人在使用 Forecaster 时遇到问题。

最佳答案

问题是您返回的数据被分成许多不同的部分(例如当天和一周中的每一天)。您不能只询问温度的整体数据集,您需要导航到您感兴趣的“日期”,然后请求温度。如:

[[JSON objectForKey:kFCCurrentlyForecast] objectForKey:kFCTemperature]

关于ios - 无法使用 Forecastr 包装器的 JSON 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17130212/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com