0

来自气象站的数据被保存到数据库中。我只对实时数据感兴趣。通过网络服务,我有这些 XML 格式的数据。并且这些值每 30 秒更新一次。我想让用户可以随时使用 updateButton 刷新值。

我做了一个如下的方法:

- (IBAction)buttonUpdate:(id)sender {

    [self viewDidLoad];
}

到目前为止它正在工作,但这是正确的方法吗?苹果允许这样的方式吗?

最好的方法是什么?

谢谢。

4

2 回答 2

2

重复使用viewDidLoad不是一个好方法。这是你应该做的:

获取将天气加载到视图中的代码并将其从视图中删除viewDidLoad并将其放入类似

-(void)loadWeatherView {
    //Code Here
}

然后,在 中viewDidLoad,用于[self loadWeatherView];在应用首次加载其视图时更新视图。

然后将 buttonUpdate 更改为:

- (IBAction)buttonUpdate:(id)sender {

    [self loadWeatherView];
}

使用viewDidLoad可能不会导致问题,但通常您希望在那里执行更多不会经常更改的高内存加载。无论如何,每次视图加载时都会调用它,因此不断地从代码中调用它并不是最好的主意。现在在这种情况下,它可能不是非常重要,但作为一种习惯,我喜欢将尽可能少的实际代码放入viewDidLoad其中,而只是调用 from 的方法viewDidLoad,这样您就可以像我提供的那样加载单独的东西多于。

这使得您可以更新一件事,而不是重新加载不需要重新加载的内容。

希望这可以帮助!

于 2013-03-04T17:06:43.060 回答
1

调用“viewDidLoad”方法是不好的风格。您应该创建一个新方法 [self updateData] 并调用它。将与更新本身相关的所有功能都放在那里,它应该会更好地工作。

于 2013-03-04T17:07:07.630 回答