2016-05-02 9 views
0

私は2つの配列を持っています。テーブル内の行ごとにデータをループ配列

var TableData:Array<String> = Array <String>() var TableSpeed:Array<String> = Array <String>()

各配列名、タイトル、住所と年齢が関与しています。
私はその4つのデータを行ごとに一緒に表示したいと思います。
私の現在の問題は、各データが各行に表示されることです。
「名前」の最初の行に表示されます。
「タイトル」 2行目のデータ表示。

+0

1: 'var TableData:[String]()'の代わりに 'var TableData = [String]()'を使うだけでいいです。TableData:Array < String > = Array < String >() '2:キャメルケースの変数名を使用してください:' tableData' 3:あなたのコードは、すべての4つのラベルに***同じ***値を割り当てます! 4:複数の配列間でデータを分割しないで、* one *オブジェクトのすべての値を一緒に保持する構造体またはクラスを作成してください!正確に何を達成したいのですが、代わりに正確に何が起こっていますか? – luk2302

答えて

0

あなたが達成しようとしていることは正確にはわかりませんが、データ構造を再考する必要があると思います。

現在、このコードで配列全体にアクセスしています。つまり、.lblNameプロパティと他の3つの配列がすべて配列全体に設定されています。

struct TableData { 

var name 
var title 
var address 
var age 

/* 
Here you can either set up a memberwise initializer as I did below, or set default values for each variable above. 
init(String: name, String: title, String: address, Int: age) { 
self.name = name 
self.title = title 
self.address = address 
self.age = age 
*/ 
} 

//Creating an array of TableData elements. 
var tableData = [TableData] 

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

let packCellToReturn = tableView.dequeueReusableCellWithIdentifier("packCell", forIndexPath: indexPath) as! PackTableViewCell 

switch (packSegmentedControl.selectedSegmentIndex) 
{ 
case 0: 
    packCellToReturn.lblName.text = tableData[indexPath.row].name 
    packCellToReturn.lblTitle.text = tableData[indexPath.row].title 
    packCellToReturn.lblAddress.text = tableData[indexPath.row].address 
    packCellToReturn.lblAge.text = tableData[indexPath.row].age 

    break 

をそしてTableSpeed構造体とTableSpeedの構造体のtableSpeedアレイの構造などを作成して同じことを行うとで同様にそれを実装:

packCellToReturn.lblName.text = TableData[indexPath.row] 

私はこのようにそれを実装しようとするだろうtableView funcです。

関連する問題