2009-07-16 28 views
0

Es ist nichts in der Datei, aber ich füge row1 zu meinem Array gleich danach. NSLog sagt mir, dass das Array leer ist. Warum wird row1 nicht zum Array hinzugefügt? Mein anderer Code ist in Ordnung, soweit ich das beurteilen kann. Meine App hat funktioniert, wenn ich harte Werte in das Array eingegeben habe. Jetzt, da ich von einer Datei lade, funktioniert es nicht.Hinzufügen eines Objekts zu einem Array Lesen aus einer Datei

- (void)viewDidLoad { 
//array value 

//NSMutableArray *array; 

NSString *filePath = [self dataFilePath]; 
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) 
{ 
NSMutableArray *array/*array*/ = [[NSMutableArray alloc] initWithContentsOfFile:filePath]; 

NSDictionary *row1 = [[NSDictionary alloc] initWithObjectsAndKeys:@"Study", @"Task", @"2 hours", @"Length", @"4", @"Hours", @"0", @"Minutes", @"15", @"Tiredness", nil]; 
[array addObject: row1]; 
self.tasks = array; 

NSLog(@"The contents of the array (file exists) is %@", array); 

[array release]; 
[myTableView reloadData]; 
} 

UIApplication *app = [UIApplication sharedApplication]; 
[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(applicationWillTerminate:) 
              name:UIApplicationWillTerminateNotification 
              object:app]; 
[super viewDidLoad]; 
} 

Bitte helfen!

Vielen Dank im Voraus,

Matt

+0

Vergessen Sie nicht, das Array und Wörterbuch zu 'release', da Sie jeder von ihnen erstellt mit' alloc' und ein 'init'-Methode. Weitere Informationen finden Sie in der Programmieranleitung zum Speichermanagement für Cocoa: http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/MemoryMgmt/ –

Antwort

0

Sie die Tableview Delegierten und Datenquelle machen wird Ich sehe richtig

1

Zwei Möglichkeiten einstellen:

  1. Das Objekt mit diesem Code nicht ist korrekt als Datenquelle der Tabelle eingerichtet.

  2. Eine Datei existiert in dem Pfad, den Sie betrachten, aber ihr Inhalt kann nicht als Array analysiert werden. In diesem Fall würden Sie den ersten Zweig der if-Klausel treffen, aber initWithContentsOfFile: würde nil zurückgeben. Sie können dies leicht diagnostizieren, indem Sie nach dem Aufruf dieser Methode nach "nil" suchen.

0

Es ist schwierig, Ihre Frage zu beantworten. Hier sind zwei Vorschläge:

Wenn Sie hier Code eingeben, reinigen Sie es. Entfernen Sie Kommentare und formatieren Sie sie schön.

Zeigen Sie alle Ihren Code. In deinem Code könnten viele Dinge falsch sein. Vielleicht ist die Eigenschaft self.tasks nicht korrekt. Vielleicht haben Sie die Datenansicht nicht richtig eingerichtet. Möglicherweise haben Sie die richtigen Delegate-Methoden der Tabellenansicht nicht implementiert. Es ist schwer zu sagen.

Versuchen Sie auch, die grundlegendsten Dinge auszuschließen. Zum Beispiel, wenn Sie Zweifel, ob das Array-Setup richtig ist, dann ist es einfach drucken:

NSLog(@"The contents of the array is %@", array); 
Verwandte Themen