如何最好地存储不同城市的温度数据?

时间:2013-01-03 18:57:07

标签: iphone ios uitableview

这有点令人困惑,但我会尽力解释它,我希望它没事。

我正在尝试在iOS中创建以下功能:

我在tableview的每一行都有红色按钮。将红色按钮拖放到(原型)tableViewcell上,并在每行中使用该按钮。按钮文本显示华氏温度。但是在轻敲时会发生变化,因此按钮的颜色会变为绿色。此时我想要额外的功能;华氏温度将变为Celcius。 (我对此功能有疑问)

这里的问题是我有一个tableviewcells列表(每个都是另一个城市),而不仅仅是一个。所以我有这么多按钮,我不使用数据库来保存温度数据。数据通过服务读取并放入阵列并由NSUserDefaults传输到此视图。

例如;我的tableview中有一个城市列表。每个都是一排,每个温度都放在一个红色按钮上。温度值是红色按钮的文本。

  1. 柏林45F
  2. Istanbul 70F
  3. Miami 100F
  4. Chicago 30F
  5. ...等。

    例如,当我点击柏林排上的按钮将华氏温度改为Celcius时,第一次没有问题,所以我可以获得柏林的Celcius值,没问题。但是当我再次点击它再次将其更改为华氏温度时,该值无法正确显示。柏林的华氏温度值与其他值混淆。因为我不使用数据库,它确实从数组中读取值,并且它不知道要使用哪个值。点击几下后,所有华氏温度值变为单个值,这是最后一个城市的华氏温度值(我使用indexPath.row,因此它获得最后点击的值)

    如何在不使用数据库的情况下维护柏林的温度数据,以便在点击其他城市的按钮后再次点击它时,它会显示正确的值(45F或正确的Celcius值)?

    感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

虽然我建议你使用某种形式的基于密钥的存储(比如创建一个存储温度的“城市”类,甚至存储城市 - >字典中的>温度键组合),你可以阅读按钮文本当您单击它并将NSString中的值转换回double或整数时 我假设当你点击按钮时调用的函数看起来就像我要编写的那个。然后,您可以获得单击的按钮以及显示的文本,如下所示:

- (IBAction)convertTemperature:(id)sender {
    UIButton *myButton = (UIButton *)sender;
    NSString *buttonText = [myButton titleForState:UIControlStateNormal];
    //...
}

在此之后,您只需将字符串转换为获取温度,将其转换并显示回来。