Как избежать предупреждений компилятора при обработке UITextField так же, как UITextView - PullRequest
0 голосов
/ 10 июля 2011

Сценарий:

У меня есть два 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 = [содержимое ячейки];" Есть ли ответ на этот вопрос?

1 Ответ

0 голосов
/ 10 июля 2011

Попробуйте использовать [(id)textView setText:contents].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...