Владелец файла - это объект-заполнитель для объекта, который в конечном итоге загрузит NIB. Это способ для объектов за пределами NIB ссылаться на объекты внутри NIB. В вашем случае вы пытаетесь создать ячейку табличного представления из NIB, поэтому вам понадобится другой объект, чтобы стать владельцем. Ячейка табличного представления не может быть как снаружи, так и внутри NIB.
В этой строке вашего кода:
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"TVCell"
owner:nil
options:nil];
Вы можете указать объект для заполнителя Владелец файла в Интерфейсном Разработчике, к которому необходимо разрешить. Я предполагаю, что ваш код находится в классе, как «MyTableViewController». Если это так, вы можете передать 'self' для параметра владельца - [NSBundle loadNibNamed: owner:]. Если бы вы сделали это, у вас могли бы быть выходы в классе MyTableViewController, которые были бы полезны для загрузки этого NIB. В частности, вы можете использовать их, чтобы избежать цикла for, который у вас есть. Вы бы сделали это так:
- Добавление выхода «loadedTableViewCell »в MyTableViewController
- В кончике ячейки таблицы установите для владельца файла значение MyTableViewController.
- Установите соединение для «loadedTableViewCell »от владельца файла к ячейке табличного представления.
Затем измените свой код, чтобы он был похож на это:
TVCell *cell = (TVCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
[[NSBundle mainBundle] loadNibNamed:@"TVCell" owner:self options:nil];
cell = [self loadedTableViewCell];
[self setLoadedTableViewCell:nil];
}