2016-06-01 7 views
-1

Ich möchte eine PLIST-Datei laden und die Daten von PLIST verwenden, um eine TableView zu initialisieren.Problem beim Implementieren von Datenquellenmethoden für UITableView

Wenn ich:

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ 
    return [self.data count]; 
} 

aber [self.data count] immer 0.NSLog konnte Ausgang korrekte Daten.

NSString *plistPath = [[NSBundle mainBundle]pathForResource:@"supportList" ofType:@"plist"]; 
NSMutableArray *data =[[NSMutableArray alloc]initWithContentsOfFile:plistPath]; 

Und plist Quellcode

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<array> 
    <string>First</string> 
    <string>Second</string> 
</array> 
</plist> 

Wie es zu beheben?

Antwort

1

Bitte verwenden Sie die Datenquelle Methoden der UITableView Klasse

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    return [self.data count]; 
} 

Und vergessen Sie nicht die Tableview der Datenquelle einzustellen.

chosentableView.datasource = self; 
+0

Aber ich einen NSLog nach 'NSLog (@ "% @", Daten);', wie 'NSLog (@ "Datenzähler:% lu"(unsigned long) [self.data count]) ; 'die Ausgabe ist' currencyTransform [13493: 1851617] Datenanzahl: 0' – Shucheng

+0

Kannst du einen NSlog auf den PlistPath setzen, um den Pfad zu überprüfen, oder nicht? – EricXuan

+0

NSLog (@ "% @", plistPath) so? – Shucheng

0

Sie verwenden nur die uitableview Klasse von Standardmethoden, Und durch code/xib/storyboarddataSource von Tableview verbinden. ändern Sie den Code.

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    return self.data.count; 
} 
+0

yeah! Aber ich habe einen neuen Fehler, die Daten zählen immer 0. – Shucheng

+0

Wenn Daten immer 0 zählen, dann wird leere Zelle angezeigt, oder Sie können nslog vor return-Anweisung drucken. Wenn es gedruckt wird, fügen Sie einige Daten im Array hinzu. –

+0

nslog könnte korrekte Daten drucken, aber immer 0 – Shucheng