Ios swift 更改结果数组的类型
Ios swift change type of results array
如何更改 table 查看结果数组的类型。
var results: [Group] = []
现在我将 viewcontroller 用于两个目的,相同的设计和相同的 table,但另一个结果数组。
现在我需要在这个 didSet 中更改它:
var article:Article? {
didSet {
var results: [Article] = [] // something like this
getArticleOrderData()
}
}
设置文章后,将结果数组的类型更改为 [Article]
。
这可能吗?
或者我应该在文章的情节提要中制作一个又一个 viewcontroller 吗?
声明一个协议,其中两种类型都符合并将该协议用作 table 视图的集合类型。
非常简单的例子:
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
}
}
如何更改 table 查看结果数组的类型。
var results: [Group] = []
现在我将 viewcontroller 用于两个目的,相同的设计和相同的 table,但另一个结果数组。
现在我需要在这个 didSet 中更改它:
var article:Article? {
didSet {
var results: [Article] = [] // something like this
getArticleOrderData()
}
}
设置文章后,将结果数组的类型更改为 [Article]
。
这可能吗?
或者我应该在文章的情节提要中制作一个又一个 viewcontroller 吗?
声明一个协议,其中两种类型都符合并将该协议用作 table 视图的集合类型。
非常简单的例子:
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
}
}