Metoda de stil Tableview depinde de o valoare dintr-un dicționar

Încerc cu disperare să îmi dau seama cum pot să fac setarea unei celule de tip Tableview dependentă de o valoare într-un dicționar. Dicționarul este un rând SQLite și am setat o coloană în sus pentru a stabili ce celula să utilizeze (coloana Tip). Aceasta ar trebui să spună celuleiForRowAtIndexPath care stil de celule să folosească. În mintea mea, acest cod nu ar trebui să funcționeze fără probleme, dar continuă să înregistrez următoarea eroare:

Terminarea aplicației din cauza unei excepții neobosite   'NSInternalInconsistencyException', motiv: 'UITableView dataSource   trebuie să returneze o celulă din tableview: cellForRowAtIndexPath: '

Orice ajutor ar fi grozav! mulţumesc mult, Andrew

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
dictionary = [tableDataSource objectAtIndex:indexPath.row];

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    if ([dictionary objectForKey:@"Type"] == @"1") {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier];
        cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
        cell.textLabel.numberOfLines = 0;
        cell.textLabel.font = [UIFont fontWithName:@"Helvetica" size:17.0];
        cell.detailTextLabel.lineBreakMode = UILineBreakModeWordWrap;
        cell.detailTextLabel.numberOfLines = 0;
        cell.detailTextLabel.font = [UIFont fontWithName:@"Helvetica" size:17.0];
    }
    else if ([dictionary objectForKey:@"Type"] == @"0") {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
        cell.textLabel.numberOfLines = 0;
        cell.textLabel.font = [UIFont fontWithName:@"Helvetica" size:12.0];
    }

}
// Configure the cell...
cell.textLabel.text = [dictionary objectForKey:@"Title"];
cell.detailTextLabel.text = [dictionary objectForKey:@"Right_Info"];
return cell; }
0

1 răspunsuri

Pentru a compara două obiecte NSString ar trebui să utilizați metoda isEqualToString: . Cu operatorul == comparăți cei doi indicatori.

De asemenea, dequeueReusableCellWithIdentifier: returnează deja o instanță a UITableViewCell , astfel încât să nu încercați să o alocați din nou.

Dacă doriți, aruncați o privire la Tabel Consultați Ghidul de programare . Nu va face rău.

0
adăugat
iOS dezvoltatori, România — Moldova
iOS dezvoltatori, România — Moldova
21 participanți

Parteneri: ciupacabra.com, @php_ro, @js_ro, @node_ro, @seo_ro Android: @ro_android