0

我正在尝试为 iOS 学习 Objective-C。我已经尝试对此进行研究,但我一定没有使用正确的关键字。

我有几个简单命名的标签,Label1、Label2 等。除了 Label# 更改之外,我还有大量看起来基本相同的代码。我可以构建一种方法并将数字传递给它并显着缩小我的应用程序吗?

4

2 回答 2

1

您可能希望将这些对象放在 NSArray 或其他类型的集合中。然后您将能够遍历内容并对每个元素执行相同的操作。

于 2013-02-24T17:07:43.517 回答
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 建议的那样,您可以将所有 CisonLabels 收集在一个集合中,也许是一个 NSArray。

 - (void) updateLabels: (NSArray*) theLabels
 {
     for(CisonLabel *label in theLabels) [label update]; 
 }

你的直觉是正确的:将共享行为抽象到一个类中,并避免重复自己。

于 2013-02-24T17:32:09.177 回答