我正在尝试为iOS学习Objective-C。我试过研究这个,但我不能使用正确的关键字。
我有几个简单命名的标签,Label1,Label2等。除了Label#更改外,我还有大量的代码看起来基本相同。我可以构建一个方法并将数字传递给它并显着缩小我的应用程序吗?
答案 0 :(得分:1)
您可能希望将这些对象放在NSArray或其他类型的集合中。然后,您将能够遍历内容并对每个元素执行相同的操作。
答案 1 :(得分:0)
考虑定义一个新类CisonLabel,它抽象出这些标签的共享行为。 CisonLabel保存控件及其相关数据。所以你要说
CisonLabel *label1=[CisonLabel for: self.labelControl1 withIdentifier: 1];
CisonLabel *label2=[CisonLabel for: self.labelControl2 withIdentifier: 2];
CisonLabel的方法如下:
- (void) update; // sets the label text, based on the identifier
正如DRiis建议的那样,你可以在一个集合中收集你所有的CisonLabel,也许是NSArray。
- (void) updateLabels: (NSArray*) theLabels
{
for(CisonLabel *label in theLabels) [label update];
}
你的直觉是合理的:将共享行为抽象出来,避免重复自己。