【问题标题】:How do I declare an explicit type which conforms to a protocol?如何声明符合协议的显式类型?
【发布时间】:2014-06-29 17:49:15
【问题描述】:

我试图在 Swift 中复制以下 Objective-C 代码:

UIViewController <UIImagePickerControllerDelegate> *delegate = ...

我试过let delegate: UIViewController!, UIImagePickerControllerDelegate,但 XCode 抱怨“模式中缺少类型注释”。

【问题讨论】:

标签: ios swift


【解决方案1】:

只要let delegate: UIImagePickerControllerDelegate

我不确定你为什么要给委托一个类型。我们只关心它是否符合协议。由于这个原因,您会注意到所有的objective-c 委托都是id,因此任何符合的对象都可以是委托。

【讨论】:

  • 委托也是一个视图控制器,我希望编译器在传入不同类型的情况下做出响应。
  • @Pétur let delegate: UIViewController 只要UIViewController 符合您的协议就有效
  • 对,但我想确保它确实如此。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多