来自气象站的数据被保存到数据库中。我只对实时数据感兴趣。通过网络服务,我有这些 XML 格式的数据。并且这些值每 30 秒更新一次。我想让用户可以随时使用 updateButton 刷新值。
我做了一个如下的方法:
- (IBAction)buttonUpdate:(id)sender {
[self viewDidLoad];
}
到目前为止它正在工作,但这是正确的方法吗?苹果允许这样的方式吗?
最好的方法是什么?
谢谢。
重复使用viewDidLoad
不是一个好方法。这是你应该做的:
获取将天气加载到视图中的代码并将其从视图中删除viewDidLoad
并将其放入类似
-(void)loadWeatherView {
//Code Here
}
然后,在 中viewDidLoad
,用于[self loadWeatherView];
在应用首次加载其视图时更新视图。
然后将 buttonUpdate 更改为:
- (IBAction)buttonUpdate:(id)sender {
[self loadWeatherView];
}
使用viewDidLoad
可能不会导致问题,但通常您希望在那里执行更多不会经常更改的高内存加载。无论如何,每次视图加载时都会调用它,因此不断地从代码中调用它并不是最好的主意。现在在这种情况下,它可能不是非常重要,但作为一种习惯,我喜欢将尽可能少的实际代码放入viewDidLoad
其中,而只是调用 from 的方法viewDidLoad
,这样您就可以像我提供的那样加载单独的东西多于。
这使得您可以更新一件事,而不是重新加载不需要重新加载的内容。
希望这可以帮助!
调用“viewDidLoad”方法是不好的风格。您应该创建一个新方法 [self updateData] 并调用它。将与更新本身相关的所有功能都放在那里,它应该会更好地工作。