Avatar ·

如何在Swift协议中声明可选方法?

大家好!我是Swift新手,正在尝试理解协议。我有一个`MyDelegate`协议,其中包含几个方法。我希望其中一些方法是可选的——也就是说,遵循该协议的类可以不实现它们,如果不需要的话。 在Objective-C中,我只需使用`@optional`,但在Swift中这不起作用。例如,我有这样的代码: ```swift protocol MyDelegate { func didStartTask() func didFinishTask() func didFailWithError(error: Error) // 我想让这个方法成为可选的 } ``` 当我尝试在方法前写`@optional`时,编译器报错:“Optional requirements are only supported in @objc protocols”。我不想使用`@objc`,因为我的类不继承自NSObject。 如何在不依赖Objective-C runtime的情况下,在Swift协议中正确声明可选方法?有没有Swift原生的方式让方法成为可选的?还是必须使用其他方法?