2016-09-12 16 views
0

私はモデルを使ってリストアプリを作るのを練習しようとしています。各リスト項目を表すためのクラスを作ることです。私は3つのプロパティ - 2つの文字列と1つの文字列の配列を含むCategoryクラスを持っています。私はビューコントローラからそれらを保つことができるようにカテゴリに値を割り当てるための方法を持っている私のCATEGORYクラスにクラスインスタンスの配列内の配列にアクセスするにはどうすればよいですか?

class Category { 

var name: String 
var emoji: String 
var topics: [String] 
    // (the getCategories method listed below goes here) // 

init(name: String, emoji: String, topics: [String]) { 
    self.name = name 
    self.emoji = emoji 
    self.topics = topics 
} 

:ここではクラスです。この方法は、以下の通りである:私はgetCategoriesメソッドのトピックからトピックの数に設定することでセクション内の行数を取得しようとしています私のテーブルビューコントローラファイルのいずれかで

class func getCategories() -> [Category] 
    { 
     let categories = [Category(name:"cat", emoji:"", topics: ["paws","tails", "fur", "pussyfoot","purr", "kitten", "meow"]) 
    ] 
    return categories 
} 

を。 getCategoriesメソッドでカテゴリの数を取得することはできますが、私はうまくいきません...私はトピック配列に特にアクセスできないようです。ここで私はカテゴリがカウント得るためにやったことだ

...

var categories = Category.getCategories() 
    .... 
      override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return categories.count 
    } 

は、私は私がgetCategories方法で設定したトピックの数を取得する必要があり除き、これを行う必要があります。

ありがとうございます!

categories[section].topics.count 
+0

'return categories [section] .topics.count' –

答えて

0

私はあなたが不足していると思う作品は、あなたが必要だということです。:) Categoryオブジェクトの配列があるcategories以来

+0

が完璧です。ありがとうございました! –

0

、あなたは正しいインデックス、話題のアレイにアクセスして、カウントを取得する必要がありますトピックの数を取得するセクションを知るこれは、なぜテーブルビューのデータソースコールバックによって提供されるべきですか。また

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return categories[section].topics.count 
} 

あなたが特定のトピックにアクセスする必要がある場合、あなたはindexPathを渡されます。

func tableView(_ tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let topic = categories[indexPath.section].topics[indexPath.row] 
    let cell = … 
    … 
    return cell 
} 
関連する問題