2013-02-24 3 views
0

Я пытаюсь изучить Objective-C для iOS. Я попытался изучить это, но я не должен использовать правильные ключевые слова.Используя один метод вместо многих

У меня есть несколько ярлыков, которые просто называются Label1, Label2 и т. Д. У меня также есть тонна кода, которая в основном выглядит одинаково, кроме изменений Label #. Могу ли я создать один метод и передать ему номер и значительно уменьшить размер приложения?

ответ

1

Возможно, вы захотите иметь этот объект в NSArray или другом типе коллекции. Затем вы сможете прокручивать содержимое и выполнять одну и ту же операцию для каждого элемента.

+0

Спасибо. Когда вы говорите «или другой тип коллекции», кроме массива, какие существуют другие типы? – tcison

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 в виде collectionm возможно, NSArray.

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

Ваш инстинкт звучит: абстрагируйте общее поведение в классе и избегайте повторять себя.

+0

Большое спасибо, но я немного смущен вашим ответом Марка. Первый метод обновляет один ярлык, а второй обновляет их все? и в первом метафоре понимается ли идентификатор? как параметр, который вы отправляете методу, когда вы его вызываете? а во втором, потому что метки все в новом классе, автоматически ли они выполняют «обновление» метода для всех? Просьба уточнить. – tcison

 Смежные вопросы

  • Нет связанных вопросов^_^