2014-10-15 2 views
1

Я создал базу данных с PHPMyAdmin. Затем я загрузил php-файл в веб-службу для загрузки базы данных. Теперь у меня есть URL-адрес файла php, который загружает базу данных.Отображение загруженных данных из базы данных в виде таблицы

Этот код работает отлично, чтобы загрузить базу данных в приложение:

func retrieveData() { 
    let url:NSURL = NSURL(string: phpURL)! 
    var data:NSData = NSData(contentsOfURL: url)! 
    json = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments, error: nil) as NSMutableArray 

    for (var i:NSInteger = 0; i < json.count; i = i + 1) { 
     newPlatz = json.objectAtIndex(i).objectForKey("Platz") as? NSString 
     newVerein = json.objectAtIndex(i).objectForKey("Verein") as? NSString 
     newPunkte = json.objectAtIndex(i).objectForKey("Punkte") as? NSString 
     newDifferenz = json.objectAtIndex(i).objectForKey("Differenz") as? NSString 
     newSpiele = json.objectAtIndex(i).objectForKey("Spiele") as? NSString 

     var myBundesliga:Bundesliga = Bundesliga.alloc() 
     myBundesliga.initWithBundesligaID(newPlatz, nVerein: newVerein, nSpiele: newSpiele, nDifferenz: newDifferenz, nPunkte: newPunkte) 
     bundesligaArray = NSMutableArray.alloc() 
     //bundesligaArray.addObject(myBundesliga) 

     println("\(newPlatz!);\(newVerein!);\(newPunkte!);\(newDifferenz!);\(newSpiele!)") 

    } 


} 

Выход в консоли:

1;FC Bayern München;17;13;7 
2;TSG Hoffenheim;13;5;7 
3;Bor. Moenchengladbach;13;5;7 
4;Bayer 04 Leverkusen;12;2;7 
5;1. FSV Mainz 05;11;4;7 

и так далее ...

Он отлично работает. Но теперь я не знаю, как отображать данные в моем представлении таблицы. Как вы можете видеть в приведенном выше коде, код линии за двумя слэшами не работает отлично. Всегда, когда я запустить приложение есть «Тема 1: Точка останова 1,1» ошибка в этой строке:

bundesligaArray.addObject(myBundesliga)  

Я не знаю, почему. Может кто-нибудь мне помочь?

+0

Кстати, я бы не стал обязательно укажите модель 'alloc' /' init' для объекта «Bundesliga». (Я на самом деле немного удивлен, что это работает.) Я бы использовал стандартные методы Swift 'init', а затем создавал экземпляр его с помощью var var. nPunkte: newPunkte) '. – Rob

ответ

0

Проблема в том, как вы создаете объекты. У вас есть:

bundesligaArray = NSMutableArray.alloc() 

Это должно быть:

bundesligaArray = NSMutableArray() 

И, конечно, вы хотите, чтобы определить, что до вашего for цикла, а не внутри него.


Или, если вы хотите использовать Swift массив, вы бы определить bundesligaArray как:

var bundesligaArray: [Bundesliga]? 

И вы бы создать его экземпляр с

bundesligaArray = [Bundesliga]() 

И вы добавить к нему объекты

bundesligaArray?.append(myBundesliga) 
+0

Спасибо! Это отлично работает: D – Nils