【发布时间】:2015-01-27 01:21:50
【问题描述】:
我正在关注this 教程以快速执行 TDD。
大约到了一半,有一点我们需要创建一个继承自 UITableViewController 的协议。代码如下所示:
import UIKit
protocol MenuTableDataSource : UITableViewDataSource {
func setMenuItems(menuItems: [MenuItem])
}
然后我们很快创建了一个类,它符合 MenuTableDataSource 的代码,代码如下:
import Foundation
import UIKit
class MenuTableDefaultDataSource : NSObject, MenuTableDataSource {
var menuItems: [MenuItem]?
func setMenuItems(menuItems: [MenuItem]) {
self.menuItems = menuItems
}
func tableView(tableView: UITableView!,
numberOfRowsInSection section: Int)
-> Int
{
return 1
}
func tableView(tableView: UITableView!,
cellForRowAtIndexPath indexPath: NSIndexPath!)
-> UITableViewCell!
{
return nil;
}
}
但是,我仍然收到一条错误消息,提示类型“MenuTableDefaultDataSource”不符合协议“UITableViewDataSource”。
我也尝试删除参数 numberOfRowsInSection 和 cellForRowAtIndexPath 中的选项,但错误仍然存在。
我似乎哪里出错了?查看作者给出的最终源代码,同样的错误也存在,这让我觉得Apple可能在语法上改变了一些我们不知道的东西。
有什么想法吗?
谢谢。
【问题讨论】:
标签: ios uitableview swift protocols