cellForRowAtIndexPath: Gibt für eine generische Prototypzelle nil zurück

8

Das macht mich verrückt!

Ich habe eine generische UITableViewController-Klasse mit einer generischen Prototyp-Zelle mit einem Bezeichner "myCell". Entwickeln unter ARC, iOS5 und mit Storyboard verwende ich die folgende Methode:

%Vor%

Alles ist in das Storyboard, den Dateibesitzer usw. eingebunden. Ich habe mehrere andere UITableViewController in meinem Projekt, die das gleiche Konzept verwenden. Alle arbeiten. Diese bestimmte Klasse von UITableViewController möchte nicht funktionieren! hole mir immer die Ausnahme:

%Vor%

Nslog'ed - & gt; [tableView dequeueReusableCellWithIdentifier: @ "myCell"] = (null)

Jede Idee und Hilfe wird sehr geschätzt!

BEARBEITEN:

Der Einfachheit halber: - (NSInteger) tableView: (UITableView *) tabelleView numberOfRowsInSection: (NSInteger) -Abschnitt {     zurück 1; }

Dinge, die ich schon gemacht habe: 1. Löschen und erstellen und richten Sie den UITableViewController im Storyboard ein! 2. Neustart von Xcode 3. Neustart des Simulators 4. Neustart des Computers !!!! 5. Gelöscht und gebaut die App immer und immer wieder! Keine funktioniert.

Übrigens habe ich es versucht

%Vor%

.. und es wird das Problem lösen, aber wieder ... das ist ARC, Storyboard, ... Ich soll das nicht tun. Xcode soll sich darum kümmern!

    
Canopus 02.01.2012, 16:37
quelle

4 Antworten

2

Irgendwann habe ich den Fehler gefunden. Ich kann nicht sagen, dass ich die Ursache gefunden habe, aber ich habe Zeile für Zeile untersucht, das ist es, was ich für mich gefunden und bearbeitet habe.

Ich habe einige Objekte in meinem UITableViewController , die zugewiesen / initialisiert werden müssen, bevor die Ansicht geladen wird, so dass Anrufer sie festlegen können, um Werte vorzubestimmen. Da viewDidLoad zu spät ist, gebe ich sie in initWithCoder method ein.

Das Abmelden und Neuschreiben der initwithCoder -Methode hat das Problem gelöst. Es schien mir, dass die initWithCoder -Methode die UITableViewController als etwas anderes einführte!

    
Canopus 05.01.2012, 14:19
quelle
2

Sie müssen Ihre Zelle erstellen:

%Vor%     
Tomasz Wojtkowiak 02.01.2012 16:41
quelle
0

Ich hatte das gleiche Problem und konnte es einfach überwinden. Wenn Sie Zellendaten dynamisch erstellen, müssen Sie Folgendes tun:

  1. Wählen Sie die Tabellenansicht.
  2. Dann gehen Sie zum Objektinspektor zum dritten Reiter von rechts.
  3. Die erste Option heißt: "Inhalt". Ändern Sie die Auswahl von "Statische Zellen" in "Dynamische Prototypen".
  4. Stellen Sie sicher, dass Sie den Bezeichner der Zelle richtig festgelegt haben, und es ist derselbe Name, den Sie für den "dequeueResableCellWithIdentifier"
  5. verwenden

Es hat für mich funktioniert. Ich habe aufgehört, "Null" Zellwerte zu bekommen und alles scheint richtig zu funktionieren.

    
bashan 03.01.2012 22:13
quelle
0

Wenn die "IF" -Anweisung für Folgendes auf "true" (Zelle == nil) fällt:

%Vor%

Der Name @"myCell" wurde entweder falsch geschrieben (stimmt nicht überein) oder fehlt im Storyboard-ID-Feld für die Zelle.

    
Carl- 09.10.2013 05:53
quelle