想要创建一个继承自 Class 和协议的自定义 class XY
Want to create a custom class XY that inherits from a Class and a Protocol
我想在 watchOS 3 中创建 AVAudioInputNode
。
如果我点击 AVAudioInputNode
的 JumpToDefinition,我会看到:
open class AVAudioInputNode : AVAudioIONode, AVAudioMixing {
}
为什么我无法创建具有相同样式的自定义 class?
我的 class 是:
open class xy : AVAudioIONode, AVAudioMixing {
}
错误是
Type xy does not conform to protocol "AvAudioMixing" and "AVAudioStereoMixing"
这意味着您需要遵守这两个协议,这意味着您需要应用这些协议要求的特定功能或属性。
例如,对于 UIViewController Class 上的 table 个视图,您使用 2 个协议:UITablewViewDelegate、UITableViewDataSource。为了符合这些协议,您需要使用此功能。
func tableView(_ tableView: UITableView, numberOfRowsInSection: Int) -> int {
return 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tablewView.dequehueReusableCell(withIdentifier: "weatherCell", for: indexPath)
return cell
}
并分配其委托和数据源:
tableView.delegate = self
tableView.dataSource = self
在这 2 个协议 AVAudioIONode、AVAudioMixing 的特定情况下,您应该搜索哪些是您需要符合的必需功能。
考虑:
class XY : AVAudioIONode, AVAudioMixing { ... }
这意味着
你低于classAVAudioIONode
,而且
您将遵守 AVAudioMixing
protocol (i.e. that you'll implement the necessary AVAudioMixing
methods/properties), as well as any protocols that AVAudioMixing
inherits (e.g. AVAudioStereoMixing
).
所以,你的错误告诉你,虽然你已经声明你的 class 将符合 AVAudioMixing
(因此也符合 AVAudioStereoMixing
),但你还没有实现了必要的方法和属性。编译器只是警告您,您尚未完成 XY
的实现以成功符合这些协议。
我想在 watchOS 3 中创建 AVAudioInputNode
。
如果我点击 AVAudioInputNode
的 JumpToDefinition,我会看到:
open class AVAudioInputNode : AVAudioIONode, AVAudioMixing {
}
为什么我无法创建具有相同样式的自定义 class?
我的 class 是:
open class xy : AVAudioIONode, AVAudioMixing {
}
错误是
Type xy does not conform to protocol "AvAudioMixing" and "AVAudioStereoMixing"
这意味着您需要遵守这两个协议,这意味着您需要应用这些协议要求的特定功能或属性。
例如,对于 UIViewController Class 上的 table 个视图,您使用 2 个协议:UITablewViewDelegate、UITableViewDataSource。为了符合这些协议,您需要使用此功能。
func tableView(_ tableView: UITableView, numberOfRowsInSection: Int) -> int {
return 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tablewView.dequehueReusableCell(withIdentifier: "weatherCell", for: indexPath)
return cell
}
并分配其委托和数据源:
tableView.delegate = self
tableView.dataSource = self
在这 2 个协议 AVAudioIONode、AVAudioMixing 的特定情况下,您应该搜索哪些是您需要符合的必需功能。
考虑:
class XY : AVAudioIONode, AVAudioMixing { ... }
这意味着
你低于class
AVAudioIONode
,而且您将遵守
AVAudioMixing
protocol (i.e. that you'll implement the necessaryAVAudioMixing
methods/properties), as well as any protocols thatAVAudioMixing
inherits (e.g.AVAudioStereoMixing
).
所以,你的错误告诉你,虽然你已经声明你的 class 将符合 AVAudioMixing
(因此也符合 AVAudioStereoMixing
),但你还没有实现了必要的方法和属性。编译器只是警告您,您尚未完成 XY
的实现以成功符合这些协议。