Сценарий:
У меня есть два UITableViewCell, содержащие свойство UITextField и свойство UITextView соответственно. Очевидно, что оба эти свойства имеют общие свойства, такие как 'text' и 'textColor'
Цель:
Без разбора присваивает строку текстовому свойству UITextField / UITextView, не вызывая предупреждений компилятора. Можно ли это сделать?
Вот пример того, что я делаю:
В настоящее время я делаю это, чтобы избежать предупреждений компилятора:
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
UITextField *textField;
UITextView *textView;
switch (indexPath.section) {
case SectionDescription:
textField = (UITextField *)[(TextFieldCell *)cell contents];
textField.text = self.plan.description;
break;
case SectionNotes:
textView = (UITextView *)[(TextViewCell *)cell contents];
textView.text = self.plan.notes;
break;
}
Но я бы хотел сделать что-то более близкое к этому без предупреждений компилятора:
NSString *contents = [self getContents];
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
UIView *textView = (?? *)[(?? *)cell contents];
textView.text = contents;
Есть ли стандартный способ сделать это? Я знаю, если оба объекта соответствуют общему протоколу, я мог бы сделать что-то вроде "UIView * textView = [содержимое ячейки];" Есть ли ответ на этот вопрос?