【发布时间】:2015-08-21 16:05:47
【问题描述】:
我正在构建一个天气应用程序。我有一个函数 getAllData:
- (void)getAllData {
self.tempNowData = [self.getTempLibrary getTempNowData];
self.iconNowData = [self.getTempLibrary getIconNowData];
self.tempPlus3Data = [self.getTempLibrary getTempPlus3Data];
self.iconPlus3Data = [self.getTempLibrary getIconPlus3Data];
self.tempPlus6Data = [self.getTempLibrary getTempPlus6Data];
self.iconPlus6Data = [self.getTempLibrary getIconPlus6Data];
self.tempPlus9Data = [self.getTempLibrary getTempPlus9Data];
self.iconPlus9Data = [self.getTempLibrary getIconPlus9Data];
self.tempPlus12Data = [self.getTempLibrary getTempPlus12Data];
self.iconPlus12Data = [self.getTempLibrary getIconPlus12Data];
self.tempPlus15Data = [self.getTempLibrary getTempPlus15Data];
self.iconPlus15Data = [self.getTempLibrary getIconPlus15Data];
self.tempPlus24Data = [self.getTempLibrary getTempPlus24Data];
self.iconPlus24Data = [self.getTempLibrary getIconPlus24Data];
self.cityData = [self.getTempLibrary city];
}
它调用 getTempLibrary 类,该类接受并解析 JSON 并提供数据。
还有函数setAllData(未完成,只设置一个值):
- (void)setAllData {
self.tempNow.text = [NSString stringWithFormat:@"%@°C", self.tempNowData];
}
当我用按钮调用这个函数时,一切正常。
- (IBAction)refreshButton:(id)sender {
[self getAllData];
[self setAllData];
}
当我将相同的代码放入 viewDidLoad 时,它会显示纬度 0 和经度 0 的温度。我在 viewDidLoad 中检查 GPS 位置。
- (void)viewDidLoad {
[super viewDidLoad];
self.getTempLibrary = [[GetTemp alloc] init];
[self.getTempLibrary getCurrentLocation];
[self getAllData];
[self setAllData];
}
我认为现在获取 GPS 位置还为时过早,但是当我通过按钮调用函数时,它可以工作(显示正确的温度)。
【问题讨论】:
-
对不起,我添加了代码。
-
显示您的
viewDidLoad方法(未按预期工作的方法)。并定义“根本不起作用”。发生什么了?编译器错误?链接器错误?运行时错误?某些东西没有正确填充或根本没有填充?如果您需要帮助,您需要提供详细信息。 -
再次编辑。真的很抱歉。
-
您还没有告诉我们问题出在哪里。您说当从按钮调用代码时,“它可以工作”。什么有效?当您从
viewDidLoad调用代码时,什么“不起作用”? -
我什至不明白这个问题 :) GPS 在任何情况下都是异步的,因此您无法真正检查 viewDidLoad
标签: ios objective-c