我的应用程序中有下一个代码,但只打印下一个图像,我不知道为什么。有人可以帮我解决这个错误。我认为错误出现在字典中。
import Cocoa
class ViewController: NSViewController {
@IBOutlet weak var viewTable: NSTableView!
func getDataArray () -> NSArray{
var dataArray:[NSDictionary] = [["FirstName": "Debasis", "LastName": "Das"],
["FirstName": "Nishant", "LastName": "Singh"],
["FirstName": "John", "LastName": "Doe"],
["FirstName": "Jane", "LastName": "Doe"],
["FirstName": "Mary", "LastName": "Jane"]];
return dataArray;
}
func numberOfRowsInTableView(aTableView: NSTableView!) -> Int
{
let numberOfRows:Int = getDataArray().count
return numberOfRows
}
func tableView(tableView: NSTableView!, objectValueForTableColumn tableColumn: NSTableColumn!, row: Int) -> AnyObject!
{
var newString: (AnyObject?) = getDataArray().objectAtIndex(row).objectForKey(tableColumn.identifier)
println(newString)
return newString;
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override var representedObject: AnyObject? {
didSet {
}
}
}
也许这很愚蠢,但知道该怎么做很好,我希望它会有用。最后我的代码可以工作,他唯一需要的就是设置为数据源。
答案 0 :(得分:2)
您是否为故事板中的单元格设置了标识符?如果是这样,那么只需获取行并使用标识符即可获得“FirstName”或“LastName”,您将返回
func tableView(tableView: NSTableView, objectValueForTableColumn tableColumn: NSTableColumn?, row: Int) -> AnyObject?
{
var columnIdentifier = tableColumn!.identifier
var newString: (AnyObject?)
newString = getDataArray().objectAtIndex(row).valueForKey(columnIdentifier)
println(newString)
return newString
}
如果您还有其他问题如何使用基于单元格的tableViews:https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/TableView/PopulatingCellTables/PopulatingCellTables.html
编辑: 您应该将tableView设置为Cell Based。 而且我认为您忘记将ViewController设置为数据源,并在故事板中为tableview设置delegete