я на самом деле не вижу своей ошибки:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
FriendTableViewCell *cell = (FriendTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[FriendTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
[[NSBundle mainBundle] loadNibNamed:@"FriendTableViewCell" owner:self options:nil];
cell = friendCell;
}
cell.lblNickname.text = @"Tester";
return cell;
}
Что я делаю неправильно? Я проверил все дважды.. но не смотрите ошибку.
Спасибо за помощь!
Ты возвращаешься в "ДругКелл", и, скорее всего, ни одного.
Ваш код выглядит отлично, так что убедитесь, что ваш файл Interface Builder настроен правильно. В FriendTableViewCell.xib убедитесь, что File's Owner является вашим контроллером просмотра таблиц, и что вы правильно настроили ячейку как выход в friendCell (который, я полагаю, является UITableViewCell).
Вы создаете FriendTableViewCell
, а затем игнорируете его и устанавливаете его равным (предположительно) переменной экземпляра с именем friendCell.
Я предполагаю, что вы ожидаете, что friendCell будет установлен при вызове метода loadNibNamed. Очевидно, что она не устанавливается.
Таким образом, у вас две проблемы с этим кодом. Во-первых, не выделяйте ячейку дважды.
cell = [[[FriendTableViewCell ....
[[NSBundle mainBundle .....
cell = friendCell;
Очевидно, что создание новой ячейки и присвоение ее ячейке бесполезно, если вы перезаписываете ее вторым вызовом присвоения ячейке.
Во-вторых, friendCell, вероятно, равен нулю. Убедитесь, что NIB настроен правильно, и его выходы указывают на нужные места.
Декэ является двойным концом. Очередь - нет.
-121--891483- Очередь
: можно вставить только в один конец и удалить из другого.
Deque
: можно вставлять и удалять с обоих концов.
Таким образом, с помощью Deque
можно моделировать Очередь
, а также Стек
.
Подсказка:
Deque
- это сокращение от « D double e nded que ue».
Смотрите здесь: Загрузка TaureViewCell из NIB
Это документ Apple по этой теме.
//This is assuming you have tvCell in your .h file as a property and IBOutlet
//like so:
TableViewController.h
@property(nonatomic,retain) IBOutlet UITableViewCell *tvCell;
//Data Source Method...
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell == nil) {
[[NSBundle mainBundle] loadNibNamed:@"TVCell" owner:self options:nil];
cell = tvCell;
self.tvCell = nil;
используйте метод loadNibNamed: owner: options для загрузки ячейки в ниб. Установите экземпляр ячейки для объекта nib, а затем для объекта nil.
Прочитайте остальную документацию, которую я связал, чтобы узнать, как получить доступ к подчиненным представлениям в вашей ячейке.