В моем методе установки меток в моих ячейках (для UITableView) я читаю в 'id', который на самом деле является UITableViewCell, поскольку я читаю в нескольких различных типах ячеек. I.e.:
-(void)setMyCell:(id)cell atIndexPath:(NSIndexPath*)indexPath;
Некоторые ячейки имеют общий тип UITableViewCellStyle, тогда как другие являются более сложными и загружают NIB и т. Д. Для различных секций.
Чтобы получить доступ к текстовому свойству UILabel для своих пользовательских ячеек, я могу сделать что-то вроде
[(CustomCell*) cell setMyTextLabel:@"text"];
и я могу создать метод в классе CustomCell для установки текста метки.
Для общих ячеек метка называется «textLabel». Я думаю, что могу сделать что-то вроде
[(UITableViewCell*) cell setTextLabel:<new UILabel here>];
но это выглядит несколько грязно, так как мне нужно создать новую UILabel.
Я пытался
(UITableViewCell*)cell.textLabel.text = @"text";
, который работал бы, если бы ячейка была класса UITableViewCell, а не id, но в этом случае это не так.
Так есть ли способ просто установить textLabel.text без создания новой UILabel?