2012-11-10 4 views
15

Ich arbeite mit UITableview Ich zeige Bild, Titel, Datum und Ort Name auf Tableview Zelle.Wenn ich auf Tabellenansicht Zelle klicken Navigieren Sie zu Details view.in kontinuierlicher Prozess-Tabellenansicht zur Detailansicht und umgekehrt. Nach einigen Navigationen stürzt meine Anwendung ab, wenn ich auf meine UITableview-Zelle klicke.- [__ NSPlaceholderArray initWithObjects: count:]: Versuch, nil Objekt von Objekten einzufügen [0] '

+1

Bitte schreiben Sie Ihren Code, damit wir Ihnen helfen können. –

Antwort

26

NSArray ist entworfen, um Objekte für jedes Element zu halten - nil ist nie ein gültiger Wert um NSArray Index.

Der Fehler schlägt vor, dass Ihr Programm ein Array mit einer Länge ungleich Null erstellt und dass das erste Element Null ist.


Hunch: Sie haben eine wörtliche, etwas Gleichwertiges zu erklären:

NSNumber * n = nil; 
NSArray * a = @[n]; // << runtime error creating this array 

Natürlich könnte Ihr Programm statt -[NSArray initWithObjects:count:] direkt anrufen.

0

Der beste Weg, um diese Art von Abstürzen zu vermeiden, ist die Verwendung eines NSSet, das nil Argumente erhalten kann und dann '[someSet allObjects]' verwendet, was Ihnen ein "bereinigt von Nullwerten" -Array gibt.

Abgesehen davon nahm ich die Idee, ein Makro zu machen, um die Erstellung des Sets zu verkürzen. (Quelle: Objective C literals for NSSet and NSOrderedSet?)

Verwandte Themen