Tag: 迅速协议

非'@objc'方法不能满足'@objc'协议的可选要求

概述: 我有一个协议P1,它提供了一个Objective-C可选函数的默认实现。 当我提供可选function的默认实现时,会有警告 编译器警告: Non-'@objc' method 'presentationController(_:viewControllerForAdaptivePresentationStyle:)' does not satisfy optional requirement of '@objc' protocol 'UIAdaptivePresentationControllerDelegate' 版: 斯威夫特:3 Xcode:8(公开发布) 尝试: 试图添加@objc但没有帮助 题: 我如何解决这个问题? 有工作吗? 码: @objc protocol P1 : UIAdaptivePresentationControllerDelegate { } extension P1 where Self : UIViewController { func presentationController(_ controller: UIPresentationController, viewControllerForAdaptivePresentationStyle style: UIModalPresentationStyle) -> UIViewController? { return UIViewController() } } class A […]

如何在'纯粹的'Swift(w / o @objc)中创build一个弱协议引用

weak引用似乎没有在Swift中工作,除非一个protocol被声明为@objc ,我不想在一个纯粹的Swift应用程序。 此代码给出了编译错误( weak不能应用于非types的MyClassDelegate ): class MyClass { weak var delegate: MyClassDelegate? } protocol MyClassDelegate { } 我需要以@objc作为前缀,然后才能正常工作。 问:什么是“纯粹”的快速完成weak delegate ?