swift - 将类变量声明为符合 Swift 协议(protocol)

标签 swift protocols

在 Swift 中,我如何声明一个明确声明它符合某些协议(protocol)的变量? objective-c 等价物是 @property id<NSObject> 据我了解,这样做:

var a: NSObject

声明一个类型为 NSObject 协议(protocol)的变量,但我不这样做,我想声明一个类型为 AnyObject 的变量。符合。我也有兴趣了解如何声明一个对象数组,其中每个对象都符合该协议(protocol)。

最佳答案

其实不需要AnyObject这里;如果您只关心遵守协议(protocol) Proto , 你可以简单地写 var a: Proto . (在某些情况下,您的协议(protocol)可能会使用 Self 或其他需要将其用作通用约束的事物;然后您将使用 class C<T: Proto> { var a: T }

关于swift - 将类变量声明为符合 Swift 协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25345158/

相关文章:

ios - 将 Alamofire Multipart 方法转换为以前的最新 4.0 版本,导致多形式零件数据出现问题

ios - 在 UIPageViewController (Swift) 中可靠地跟踪页面索引

ios - 标签显示 html 数据并使图像和链接可快速点击

swift - 在父类(super class)符合 Swift 协议(protocol)的子类中实现委托(delegate)方法

iOS 10 : CLManager as a separate class - receiving call backs

ios - 如何在 Collection View 中将所有项目显示为第一个索引

ios - 创建 swift 闭包并将其作为完成 block 传递给 objective-c 类

unit-testing - swift 2 : testing using Protocol-Oriented Programming instead of mock objects?

ios Swift - API GoogleMaps - 不符合协议(protocol) GSMAutocompleteViewControllerDelegate

swift - 方法 ... 在非最终类中 ... 不能在协议(protocol)扩展中实现,因为它返回 'Self' 并具有关联的类型要求