Я читаю пользовательскую ячейку таблицы в tableView:cellForRowAtIndexPath:
из файла пера. Это прекрасно работает для моих целей, за исключением того, что это довольно медленно.
Теперь я знаю, что в долгосрочной перспективе правильно создать ячейку полностью в коде, использовать одно представление и так далее. Но это прототип, и я не хочу вкладывать в него столько усилий.
Пока что я был бы рад, если бы я прочитал перо только один раз в подклассе UIViewController
, а затем tableView:cellForRowAtIndexPath:
сделал его копии. Мое предположение здесь состоит в том, что копирование будет быстрее, чем чтение пера.
Вот что я использую для загрузки пера, который я называю с viewDidLoad:
(и retain
после)
-(id)loadFromNamed:(NSString*)name {
NSArray *objectsInNib = [[NSBundle mainBundle] loadNibNamed:name
owner:self
options:nil];
assert( objectsInNib.count == 1 );
return [objectsInNib objectAtIndex:0];
}
Пока все хорошо. Но вопрос в том, как мне копировать это снова и снова? Это вообще возможно?
Я пробовал [_cachedObject copy]
и [_cachedObject mutableCopy]
, но UITableViewCell
не поддерживает ни один из протоколов копирования.
Если мне нужно, я могу просто попросить их игнорировать скорость, пока я не буду готов полностью удалить перо, но я бы предпочел, чтобы он шел немного быстрее, если здесь есть низко висящий фрукт. *
Есть идеи?