如何使类符合Swift中的协议?

YuX*_* Fu 120 objective-c swift

在Objective-C中:

@interface CustomDataSource : NSObject <UITableViewDataSource>

@end
Run Code Online (Sandbox Code Playgroud)

在斯威夫特:

class CustomDataSource : UITableViewDataSource {

}
Run Code Online (Sandbox Code Playgroud)

但是,将出现一条错误消息:

  1. 类型'CellDatasDataSource'不符合协议'NSObjectProtocol'
  2. 类型'CellDatasDataSource'不符合协议'UITableViewDataSource'

什么应该是正确的方法?

Ale*_*yne 248

类型'CellDatasDataSource'不符合协议'NSObjectProtocol'

你必须使你的类继承NSObject以符合NSObjectProtocol.Vanilla Swift课程没有.但很多部分都是UIKit期待NSObject的.

class CustomDataSource : NSObject, UITableViewDataSource {

}
Run Code Online (Sandbox Code Playgroud)

但是这个:

类型'CellDatasDataSource'不符合协议'UITableViewDataSource'

是期待.在您的类实现协议的所有必需方法之前,您将收到错误.

所以得到编码:)