当我声明一个类,我想遵守一个协议,Swift会显示一条消息,告诉我在满足所有协议的要求之前,我不遵守那个协议。有没有办法让编译器提供更具体的细节,告诉我缺少哪些需求,或者为什么我不符合该协议,或者我总是必须打开该协议的源代码,与我的类的源代码并排,并进行手动的目测比较?澄清一下,我并不是特别询问任何特定的协议,事实上,我确实在寻找更好的支持来执行我自己的协议。
fykwrbwg1#
Issue Navigator(左侧面板上的感叹号图标,或CMD+4)将显示不符合的协议及其原因:
Issue Navigator
CMD+4
nr9pn0ug2#
有没有办法让编译器给予我更具体的细节,我错过了哪些需求?是的,完整的编译器输出会准确地告诉您缺少哪些要求:
简单的例子:
class A : Equatable { }
编译器输出:
error: type 'A' does not conform to protocol 'Equatable' class A : Equatable { ^ Swift.Equatable:28:17: note: protocol requires function '==' with type '(A, A) -> Bool' public func ==(lhs: Self, rhs: Self) -> Bool
mo49yndu3#
Xcode 9,帮助实现Swift数据源和委托的所有强制方法。以下是UITableViewDataSource的示例:显示警告/提示以实现强制方法:
UITableViewDataSource
单击“修复”按钮,将在代码中添加所有强制方法:
3条答案
按热度按时间fykwrbwg1#
Issue Navigator
(左侧面板上的感叹号图标,或CMD+4
)将显示不符合的协议及其原因:nr9pn0ug2#
有没有办法让编译器给予我更具体的细节,我错过了哪些需求?
是的,完整的编译器输出会准确地告诉您缺少哪些要求:
简单的例子:
编译器输出:
mo49yndu3#
Xcode 9,帮助实现Swift数据源和委托的所有强制方法。
以下是
UITableViewDataSource
的示例:显示警告/提示以实现强制方法:
单击“修复”按钮,将在代码中添加所有强制方法: