Ios swift改变结果数组的类型

时间:2015-11-04 10:14:47

标签: ios swift tableview

如何更改tableview结果数组的类型。

var results: [Group] = []

现在我将viewcontroller用于2个目的,相同的设计和相同的表,但另一个结果数组。

现在我需要在这个didSet中更改它:

var article:Article? {
    didSet {
        var results: [Article] = [] // something like this
        getArticleOrderData()
    }
}

设置文章时,将结果数组的类型更改为[Article]

这可能吗?

或者我应该在故事板中为文章制作另一个和另一个viewcontroller?

1 个答案:

答案 0 :(得分:1)

声明一种协议,其中两种类型都符合并使用协议作为表视图的集合类型。

很简单的例子:

protocol Resultable {
  var name : String {get set}
}

class Article : Resultable {
  var name = "article"
}

class Group : Resultable {
  var name = "group"
}

class MYTableViewController : UITableViewController {

  var results = [Resultable]()

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

  override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
    let result = results[indexPath.row]
    cell.textLabel!.text = result.name
    return cell
  }
}