objective-c - Swift:实现协议(protocol)的类的类型

标签 objective-c swift

<分区>

在 Objective-C 中,您可以在返回值中同时指定类名和一组协议(protocol)。例如,一个 UIViewController 是一个 UIScrollViewDelegate:

- (UIViewController<UIScrollViewDelegate> *) viewDelegate;

我找不到在 Swift 中表达这一点的方法。这样的事情失败了,因为 UIViewController 不是协议(protocol):

func viewDelegate() -> protocol<UIViewController, UIScrollViewDelegate>;

最佳答案

您可以创建一个带有约束的通用函数。这是否满足您的用例?

  func viewDelegate<T: UIViewController, UIScrollLViewDelegate>() -> T {

    var t = T()

    return t;

  }

关于objective-c - Swift:实现协议(protocol)的类的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28507994/

相关文章:

objective-c - 更改 JavascriptCore 中 window.localStorage 的值(从 C/Obj-C API 重新定义不可配置的属性)

ios - 如何从 objective-c 中模型数组内的模型数组中搜索单词

php - mysql数据库中的Swift数组

ios - 在调用 API 之前从数组中移除对象

iphone - AlertView iOS 7 中的 UiTableView

objective-c - NSString stringByReplacingPercentEscapesUsingEncoding 不起作用

objective-c - 如何以这种格式显示数字?

ios - ipa 应用程序无法添加到我们的 itunes 库,它不是一个有效的应用程序

ios - 从一个场景中删除 iAd 横幅

swift - 删除在函数内声明的操作