如何用可选方法包装协议?

时间:2015-04-04 19:34:42

标签: swift wrapper swift-protocols

任务很简单:我需要创建将所有内容委托给包装对象的包装器。只有包装对象的类型是包含可选方法的协议。我的包装器是实现相同的协议。

我如何处理可选方法?我可以:

  1. 我可以在我的包装器中实现它们。但是如果它们没有被包装的对象实现,我将从这个实现中返回什么呢?
  2. 不实施它们。在这种情况下,包装器对象将不会提供我不想要的包装对象的某些功能。
  3. 还有更好的选择吗?请注意,我在Swift工作。

1 个答案:

答案 0 :(得分:0)

如果您使用的是可选方法,那么您将使用Objective-C运行时。这意味着您可以查询对象是否响应可选方法,更好地解释了here

如果您是Objective-C运行时的新手,可以在Objective-C Runtime Programming Guide了解更多相关内容。

我认为包装器应该在运行时检查实现,如果缺少那么应该在调用其中一个可选方法时返回某种指示符,一个布尔值。