0

我想AVAudioInputNode在 watchOS 3 中创建。

如果我单击 JumpToDefinition for AVAudioInputNode,我会看到:

open class AVAudioInputNode : AVAudioIONode, AVAudioMixing {
}

为什么我不能创建具有相同样式的自定义类?

我的课是:

open class xy : AVAudioIONode, AVAudioMixing {
}

错误是

xy 类型不符合协议“AvAudioMixing”和“AVAudioStereoMixing”

4

2 回答 2

0

这意味着您需要遵守这两个协议,这意味着您需要应用这些协议所需的特定功能或属性。

例如,对于 UIViewController 类上的表视图,您使用 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 的特定情况下,您应该搜索哪些是您需要符合的必需功能。

于 2016-10-21T21:04:46.027 回答
0

考虑:

class XY : AVAudioIONode, AVAudioMixing { ... }

这意味着

  • 你是子类化AVAudioIONode,但也是

  • 您将遵守AVAudioMixing协议(即您将实现必要的AVAudioMixing方法/属性),以及任何AVAudioMixing继承的协议(例如AVAudioStereoMixing)。

因此,您的错误告诉您,虽然您已声明您的类将符合AVAudioMixing(因此也符合AVAudioStereoMixing),但您尚未实现必要的方法和属性。编译器只是警告您,您尚未完成实现XY以成功符合这些协议。

于 2016-10-21T21:41:12.513 回答