[問題] 請問tableview如何顯示二維陣列?

作者: Talenius (Harmonic Inspirations)   2016-03-24 15:53:16
語言:Swift 2
撰寫:OS X
介面:Xcode 7
已宣告一個二維陣列
var JData: [[Int32]] = Array(count: 300, repeatedValue:
Array(count: 23, repeatedValue: 0))
並連線SQLite匯入到JData裡
在ViewController.swift中
func tableView(tableView: NSTableView,
viewForTableColumn tableColumn: NSTableColumn?, row: Int) -> NSView? {
if let cellView = tableView.makeViewWithIdentifier
(tableColumn!.identifier, owner: self) as? NSTableCellView {
switch tableColumn!.identifier {
case "uidY": cellView.textField?.stringValue
= "\(JData[i][1])"
case "uidH": cellView.textField?.stringValue
= "\(JData[i][2])"
}
}
}
//JData[i][1]:欲顯示第i列資料,但在func tableView裡的寫法應有誤
請問:
1. 因為會新增筆數(新增列數),所以二維陣列應如何宣告與設初始值較佳?
2. 如何顯示所有二維資料JData?以及指定範圍的資料?
懇請指點
謝謝
作者: darktt (小朱)   2016-03-24 21:45:00
建議改用Array去包你的資料,它的好處是能查這個"元素"是否在你的陣列中抱歉,你有用Array,是我沒看清楚其實如果非必要,減少使用二維陣列,不只是UI顯示,資料處理也比較不容易,如果一定要怎麼做的話,可以考慮使用Dictionary包Array
作者: tentenlee (天天)   2016-03-25 01:14:00
i在哪邊呀?
作者: Talenius (Harmonic Inspirations)   2016-03-25 04:42:00
var i=0在func tableView前宣告,但這寫法不見得好宣告成二維是為了cell的計算方便若用dictionary,因每筆資料有23行,與index皆是數字則請問如何宣告與計算會較為方便?另外這邊比較大問題是如何用tableView顯示二維資料?
作者: darktt (小朱)   2016-03-25 06:05:00
說真的台灣有在研究OS X的App的人並不多,建議將NSTableView的官方說明文件看清楚再來
作者: uranusjr (←這人是超級笨蛋)   2016-03-25 11:02:00
這種用途比較建議用 dataSource 來做, 不需要 delegate可以自己先研究一下, 如果晚點有空再詳回感覺你應該也沒有 iOS 經驗?如果有的話, 這概念其實和UITableView 差不多
作者: Talenius (Harmonic Inspirations)   2016-03-27 13:09:00
感謝各位的指點

Links booklink

Contact Us: admin [ a t ] ucptt.com