Я читаю пользовательскую ячейку таблицы в 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 не поддерживает ни один из протоколов копирования.
Если мне нужно, я могу просто сказать им игнорировать скорость, пока я не буду готов полностью удалить перо, но я бы предпочел, чтобы это происходило немного быстрее, если здесь есть низко висящий фрукт.
Любые идеи?