Modifizieren Ab iOS 5, wenn Sie Storyboards und Ihre Wiederverwendung Bezeichner verwenden, entspricht einem Prototyp in Ihrem Storyboard Sie nicht eine Null aus dequeueReusableCellWithIdentifier zurückgegeben.
von Apple Doc:
Tabellenansicht Programmierhandbuch für iOS
Erstellen und Konfigurieren Wenn eine Tabellenansicht
einer dynamischen Tabellenansicht mit Daten
Bestücken Die dequeueReusableCellWithIdentifier: Methode fragt nach einer Zelle , das in einem Storyboard definiert ist, gibt die Methode immer eine gültige Zelle zurück. Wenn keine wiederverwendbare Zelle darauf wartet, wiederverwendet zu werden, erstellt die Methode mithilfe der Informationen im Storyboard selbst eine neue Zelle. Dieser beseitigt die Notwendigkeit, den Rückgabewert für Null zu überprüfen und eine Zelle manuell zu erstellen.
Sie können die Zellenadresse einzuloggen, um sich selbst zu beweisen, dass sie wiederverwendet werden. Aber nicht mit dem Logging liefern, wird es wirklich Ihren Tisch verlangsamen.
NSLog(@"Deque Cell %p", cell);
Besser noch Breakpoint verwenden, um es zu protokollieren.
$25 = 0x097f9850 <DDSImageSubtitleCheckedTableViewCell: 0x97f9850; baseClass = UITableViewCell; frame = (0 22; 320 44); hidden = YES; autoresize = W; layer = <CALayer: 0x97f9740>>
$26 = 0x0a6a4a00 <DDSImageSubtitleCheckedTableViewCell: 0xa6a4a00; baseClass = UITableViewCell; frame = (0 66; 320 44); hidden = YES; autoresize = W; layer = <CALayer: 0xa6a4b50>>
$27 = 0x0a3ad250 <DDSImageSubtitleCheckedTableViewCell: 0xa3ad250; baseClass = UITableViewCell; frame = (0 110; 320 44); hidden = YES; autoresize = W; layer = <CALayer: 0xa3ad390>>
$28 = 0x0a3ae640 <DDSImageSubtitleCheckedTableViewCell: 0xa3ae640; baseClass = UITableViewCell; frame = (0 176; 320 44); hidden = YES; autoresize = W; layer = <CALayer: 0xa3ae780>>
$29 = 0x0972a370 <DDSImageSubtitleCheckedTableViewCell: 0x972a370; baseClass = UITableViewCell; frame = (0 220; 320 44); hidden = YES; autoresize = W; layer = <CALayer: 0x972a340>>
Wenn Sie nur die Adressen
0x097f9850
0x0a6a4a00
0x0a3ad250
0x0a3ae640
0x0972a370
verwenden Sie Storyboards? –
Auch wenn Sie keine nib registriert haben und dequeueReusableCellWithIdentifier könnte nil zurückgeben, wäre die Konfiguration der Zelle nur im Fall 'if (cell == nil) {...} 'falsch. –