2016-04-18 7 views
0

私は練習としてSwiftコードをObjective-Cに変換しています。 ViewController.mError: "TableItem *"タイプのオブジェクトに "count"プロパティが見つかりません

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

エラー:プロパティ "表項目*" 型のオブジェクトに見つからない "カウント"

オリジナルスウィフトコード:

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return items[section].count 
} 

Viewcontroller.swift

class ViewController: UITableViewController { 

    let now = NSDate() 
    var date = NSDate() 

    var sections:[String] = [] 
    var items:[[TableItem]] = [] 

...

+0

が必要ですか? 'items'はどのように定義されていますか? – Wain

+0

'items'の宣言はどこですか? – garanda

+0

self.items.countである必要があります。 –

答えて

1

+0

Question編集済み –

+0

@CodeOxO Swiftに 'items'の宣言コードをまだ投稿していません。 – Mashiro

+0

今投稿します。 –

1

"items"は配列の配列である必要があります。これで、そのようなプロパティを持たないTableItemクラスのインスタンスから "count"という名前のプロパティを取得しようとしています。我々はによってので、itemsNSMutableArrayTableItemのオブジェクトであることがわかりますObjective-Cのヘッダで

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

あなただけのアイテムをキャストする必要があり、[セクション]

0

次のコードを試みることができますself.items[section].count;TableItemのインデックスはsectionで、countメソッドまたはプロパティはありません。そのため、エラーが発生します。

あなたはcountプロパティ/メソッドを持っているTableItemクラスをご希望の場合は疑問が残っている、またはあなたが本当に別のテーブルにアイテムを置くことによって、別のセクションにTableItemオブジェクトの配列の配列を作成するためのもの。あなただけの1セクションを持ちたいとアイテムがとにかく分割されることになっていない場合

、その後、

return self.items.count; 

使用し、あなたが行ってもいいです。

あなたの意図が間違っている場合は、宣言コードitemsをSwiftに入力してください。

編集:

ので、代わりに

@property (strong,nonatomic) NSMutableArray<TableItem *> *items; 

のあなたがそうあなたが迅速またはOBJ-Cでこれを書いている

@property (strong,nonatomic) NSMutableArray<NSMutableArray<TableItem *> *> *items; 
+0

まったく同じエラー –

+0

"items"は直接self.items.countを返さなければならないという意味のTableItemの配列ですか? –

+0

items [section] .countは配列の配列であることを意味します –

関連する問題