我是MacRuby (和Objective-C)的新手。通过阅读一些Cocoa文档,我不断地遇到提到符合协议的委托的部分。到目前为止,我一直将我的AppDelegate设置为任何涉及委托的协议,但我不确定我是否符合必要的协议。
关于协议我需要了解什么,以及如何在我的应用程序中遵守这些协议?
发布于 2012-01-07 07:33:53
您需要了解什么是正式的Objective-C协议,包括它定义了强制和/或可选方法。请参阅Apple的Objective-C文档。协议是多重继承的一种有限形式,因此只继承行为,而不继承状态。其他语言可能会将其称为interface或mix-in。
遵守协议意味着您的类实现了所有强制方法,也可能没有、部分或所有可选方法。
通常,协议用于委派。它是一种将类从其委托中要求的API形式化的方法。对于给定的委托协议,您需要了解该API。请参阅有关该特定协议的Apple文档。
最后,您既没有办法也没有必要声明您的MacRuby类符合任何协议。您可以直接将类实例分配给客户端对象委托。您仍然需要遵守协议,但不会进行任何编译时检查。如果不符合,可能会出现运行时异常。或者一些奇怪的行为。或者别的什么。
不管怎样,这是我的理解。
https://stackoverflow.com/questions/8765132
复制相似问题