Objective-C / Тензодатчик от XIB / Нужно объяснение
Хорошо, я знаю, как загрузить пользовательскую ячейку из XIB, с помощью этого кода:
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustpmCellView" owner:self options:nil];
cell = (CustomCell *)[nib objectAtIndex:0];
Но кто-то может объяснить, что делает первый ряд?
Я чувствую себя действительно глупо, печатая это каждый раз и не зная, как именно это работает.
2 ответа
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustpmCellView" owner:self options:nil];
loadNibNamed
возвращает все просмотры под вашим XIB. Таким образом, мы держим это в массиве. Скажем, все представления в CustpmCellView будут получены и сохранены в массиве nib.
cell = (CustomCell *)[nib objectAtIndex:0];
Мы получаем первое представление из массива, так как это наше желаемое представление, а затем мы приводим и присваиваем объект ячейки.
Нам нужно назначить новый вид для каждой ячейки в UITableView
Таким образом, для этой цели каждый раз требуется новая ячейка, и мы делаем это, используя приведенный выше фрагмент кода.
РЕДАКТИРОВАТЬ
[NSBundle mainBundle]
, объяснено в Что смысл [NSBundle mainBundle] в iPhone?
loadNibNamed:owner:options:
Разархивирует содержимое файла пера, расположенного в связке получателя.
- (NSArray *)loadNibNamed:(NSString *)name owner:(id)owner options:(NSDictionary *)options
параметры
name Имя файла пера, который не должен включать расширение.nib.
владелец
Объект, который нужно назначить как объект-владелец файла пера.
опции
Словарь, содержащий параметры, используемые при открытии файла пера. Список доступных ключей для этого словаря см. В разделе "Параметры загрузки Nib-файлов".
Возвращаемое значение
Массив, содержащий объекты верхнего уровня в файле пера. Массив не содержит ссылок на владельца файла или какие-либо прокси-объекты; он содержит только те объекты, которые были созданы при разархивировании nib-файла. Вы должны сохранить либо возвращенный массив, либо содержащиеся в нем объекты вручную, чтобы предотвратить преждевременное освобождение объектов файла nib.