更改UILabel的文字

时间:2014-08-29 02:55:15

标签: ios objective-c

我目前正在关注CS 193P,而我正在讲课2。 如果您之前已经关注过此课程,那么我们只是添加了一个标签来输出翻转次数。

这里是视图和控制器的截图(讲座的原始代码): original code

我注意到教师正在从flipCount的setter中更改flipsLabel的文本。但是,我认为只要调用touchCardButton方法,只需向flipsLabel对象发送消息就会更容易/更直观。这是修改后的屏幕截图: after modification

有人可以解释一下导师写这种方式的原因吗?他说"而且这里有另外一个使用getter和setter的好处,那就是让UI与一个属性保持同步"

3 个答案:

答案 0 :(得分:3)

self.flipsLabel的内容仅取决于flipCount属性。

之后您可以在多个地方更改flipCount的值,如果您按照教师说的那样工作,则每次更改self.flipsLabel时都不需要更新flipCount的内容}}

您处于一个简单的用户案例中,可能无论如何实现它,但如果您处于复杂的用户案例中,您可以在100个位置更改flipCount的值,以您直观的方式,必须添加100次[self.flipsLabel setText:[....]],如果您忘记在一个地方添加,则会出现错误。

答案 1 :(得分:3)

我在大约2年多前从CS193P开始了我的iOS开发人员职业生涯。

就像上面提到的KudoCC一样,如果你使用你的方法在10个不同的地方设置flipCount,那么你也必须在10个不同的地方设置self.flipsLabel。因此,您的方法将拥有更多代码行,而教授的方式是使用更少的代码行。

我个人认为这是编程的艺术。我们有不同的方法在编程中实现相同的功能。但是,编程中使用的代码越少,通常就越好。

答案 2 :(得分:2)

他的代码的目的是:每次为flipCount属性设置新值时,标签文本也会更改。您无需再次设置标签文本。您的代码将清晰,并且易于修改。