42得票2回答
扩展非泛型类型的尾随where子句

我有以下代码:func registerNotification(name:String, selector:Selector) { NSNotificationCenter.defaultCenter().addObserver(self, selector: selector, n...

32得票1回答
协议扩展中的Swift属性观察器?

请考虑以下内容:protocol ViewControllable: class { typealias VM: ViewModellable var vm: VM! { get } func bind() } extension ViewControllable { var...

27得票5回答
Swift让协议扩展成为通知观察者

让我们考虑以下代码: protocol A { func doA() } extension A { func registerForNotification() { NSNotificationCenter.defaultCenter().addObserver(...

26得票3回答
在Objective-C中是否可以访问定义在协议扩展上的Swift方法?

在Swift中,能否从Objective-C调用协议扩展中定义的方法? 例如:protocol Product { var price:Int { get } var priceString:String { get } } extension Product { ...

25得票2回答
ObjC协议的协议扩展

我有一个Objective-C协议,主要被Objective-C对象使用,还有一两个Swift对象。我想在Swift中扩展该协议并添加两个函数。一个用于注册通知,另一个用于处理通知。如果我添加了这些函数func registerForPresetLoadedNotification() { ...

25得票2回答
扩展现有协议以实现具有默认实现的另一个协议。

通过扩展能否将协议的遵从性添加到不同的协议中呢? 例如,我们想让A符合B的规定: protocol A { var a : UIView {get} } protocol B { var b : UIView {get} } 我希望为A类型的对象提供B的默认实现(兼容性)。 ...

22得票6回答
非 final 类中的方法必须返回 `Self` 以符合协议。

当在协议扩展中实现返回 Self 的静态协议函数时,在扩展中实现该函数会出现错误(最简化的场景,不带上下文): import Foundation protocol P { static func f() -> Self static func g() -> S...

13得票4回答
从协议扩展中调用选择器

我正在构建一个简单的主题引擎,并希望添加一个扩展,将 UISwipeGestureRecognizer 添加到 UIViewController。 这是我的代码:protocol Themeable { func themeDidUpdate(currentTheme: Theme)...

12得票4回答
在协议扩展中添加目标操作失败

我有一组视图控制器,每个控制器都有一个菜单栏按钮。我为这些视图控制器创建了一个协议。此外,我扩展了该协议以添加默认功能。 我的协议如下所示:protocol CenterViewControllerProtocol: class { var containerDelegate: C...

12得票2回答
如果协议中定义了静态方法,如何在协议上调用它们?

protocol Car { static func foo() } struct Truck : Car { } extension Car { static func foo() { print("bar") } } Car.foo() /...