Ios 让Swift类同时充当UIViewController子类和UITableViewDelegate
我一直在用Swift编写一个应用程序,因此,我需要编写一个既包含子类Ios 让Swift类同时充当UIViewController子类和UITableViewDelegate,ios,uiviewcontroller,swift,protocols,Ios,Uiviewcontroller,Swift,Protocols,我一直在用Swift编写一个应用程序,因此,我需要编写一个既包含子类UIViewController又符合多个协议的类(包括UIAlertViewDelegate,UITableViewDelegate,以及UITableViewDataSource)。我目前正在使用Xcode 6测试版,遇到了很多困难 我遇到的问题源于类声明: class TableAddition : UIViewController, UIAlertViewDelegate { 编译器似乎无法识别协议,当我尝试实现
UIViewController
又符合多个协议的类(包括UIAlertViewDelegate
,UITableViewDelegate
,以及UITableViewDataSource
)。我目前正在使用Xcode 6测试版,遇到了很多困难
我遇到的问题源于类声明:
class TableAddition : UIViewController, UIAlertViewDelegate {
编译器似乎无法识别协议,当我尝试实现以下方法时:
@optional func alertView(alertView: UIAlertView!, clickedButtonAtIndex buttonIndex: Int) {
}
我得到一个错误,说“'optional'属性只能应用于协议成员”。尽管删除@optional
可以消除错误,但我不相信该方法被识别为UIAlertViewDelegate
协议的成员(Xcode从未为我自动完成方法实现)
这是一个源自Swift方面的问题,还是我的错误?出自Swift书籍:
任择议定书要求
您可以定义协议的可选需求,这些需求
不必由符合协议的类型实现。
可选要求的前缀为@Optional
关键字,作为
协议的定义
因此,@optional
关键字仅在协议定义中用于标记
可选要求。它不用于协议方法的实现。
因此,删除代码中的@可选是正确的解决方案
Xcode不能自动完成协议方法似乎是当前的一个问题
测试版