申し訳ありませんが、これは本当に簡単な質問ですが、NSArrayのカウントを見つけるのが難しいです。Objective-Cをブリッジとして使用している間、素早くインデックス0の問題をチェックする
スウィフト:
var employeeInfoArray: NSArray = []
var savedValue: String?
savedValue = defaults.stringForKey("FromToDuration")
employeeInfoArray = [EmployeeDatabase .sharedSingletonDatabase().evaluationList(savedValue)]
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return (employeeInfoArray[0].count)
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
var simpleId: String?
simpleId = "EmpTableViewCell"
let cell:EmpTableViewCell = tableView.dequeueReusableCellWithIdentifier(simpleId!) as! EmpTableViewCell
cell.empNameLabel.text = employeeInfoArray[0][indexPath.row].name
cell.empIDLabel.text = String(employeeInfoArray[0][indexPath.row].uniqueId)
return cell
}
マイemployeeInfoArray対物Cモデルからブリッジからの階層は次のデータを有する:
NSArray
->NSArray
-->Employee1 (MyCustom Class Object)
-->Employee2 (MyCustom Class Object)
-->Employee3 (MyCustom Class Object)
問題:
numberOfRowsInSectionで3を返すと、3人の従業員の詳細をすべてtableViewに表示できます。
Iは(employeeInfoArray.count)を返す場合、私はリターン(employeeInfoArray [0] .count)を返す場合
を見ただけ1従業員の詳細を取得します。それはクラッシュする。
ここで、0インデックスのカウントを取得するにはどうすればよいですか?
重複としてマークしないでくださいこの質問を過去4時間から検索しました。
ことの一つは、データを取得した後だった 'nameOfEmployee1 = textArray [0] [0] .nameの せidOfEmployee1 = textArray [0] [0] .uniqueId をしましょう print(idOfEmployee1) ' 名前は曖昧に使用しているがuniqueIdは完全に正常に動作しているというエラーが表示されます。これは何が起こっているのですか? –
クラッシュは何ですか?これは非常に危険なコードであり、 'employeeInfoArray'が空のときにこのView Controllerが最初にロードされるときにクラッシュします。空の配列をチェックして0を返さなければなりません。あなたのデータ構造も非常に扱いにくいようです。なぜあなたはEmployeeオブジェクトの配列ではなく、ネストされた配列を持っていますか? – Paulw11
@ Paulw11今週開始したIOS Swiftの新機能です。どうすれば私はEmployeeObjectsの配列を持つことができますか教えてください。私がやっていることはちょうど です。 'employeeInfoArray = [EmployeeDatabase .sharedSingletonDatabase()。evaluationList(savedValue)]'それは、従業員の配列の配列を単独で作成しています。 –