Swift 修改类以显示特定输出
我是新来的斯威夫特和有点麻烦,特别是这一点。附件是我需要作为项目的一部分运行的一些代码。细节在最后Swift 修改类以显示特定输出,swift,Swift,我是新来的斯威夫特和有点麻烦,特别是这一点。附件是我需要作为项目的一部分运行的一些代码。细节在最后 class Screen:DataSource { var items:[String]=[] func run(){ let lv = TableView() items = ["John","Paul","George","Ringo"] let ds = self lv.dataSource=ds
class Screen:DataSource {
var items:[String]=[]
func run(){
let lv = TableView()
items = ["John","Paul","George","Ringo"]
let ds = self
lv.dataSource=ds
lv.drawList()
}
}
class TableView {
// This class displays a list given a DataSource
var dataSource:DataSource?
init (){
self.dataSource=nil
}
func drawList(){
for(var i=0;i<dataSource!.getSize();i++) {
print("\(dataSource!.getItem(at:i))")
print("--------------------------")
}
}
}
protocol DataSource {
func getSize()->Int
func getItem(at pos:Int)->String
}
let screen = Screen()
screen.run()
我不确定在Screen类中修改什么。这就是我到目前为止所做的:
class Screen: DataSource {
var items: [String]=[]
func run() {
let lv = TableView()
items = ["John","Paul","George","Ringo"]
let ds = self
lv.dataSource=ds
lv.drawList()
}
//NEED HELP HERE
}
任何提示都将不胜感激 使用扩展使
屏幕
符合数据源
:
class Screen {
var items:[String]=[]
func run(){
let lv = TableView()
items = ["John","Paul","George","Ringo"]
let ds = self
lv.dataSource=ds
lv.drawList()
}
}
extension Screen: DataSource {
func getSize() -> Int { return items.count }
func getItem(at index:Int) -> String { return items[index] }
}
您也可以将
数据源
一致性和方法放在类本身上,但在扩展中这样做是组织类成员的常见方式。您需要在屏幕
类中编写getSize()
和getItem()
的代码。“我需要让它打印此”现在打印什么?谢谢!如何在类中编写getSize()和getItem()的代码?(Swift新手)感谢您的回答,但我正在编写的代码部分必须放在Screen类内部。有没有一种方法可以在没有扩展名的情况下将你的答案包含在我的类中?正如我所说的,你可以把方法放在类本身中。
class Screen {
var items:[String]=[]
func run(){
let lv = TableView()
items = ["John","Paul","George","Ringo"]
let ds = self
lv.dataSource=ds
lv.drawList()
}
}
extension Screen: DataSource {
func getSize() -> Int { return items.count }
func getItem(at index:Int) -> String { return items[index] }
}