我一直在阅读快速文档,并在操场上工作。我不得不承认我对Objective-C / iOS开发没有任何了解(至少在Xamarin之外)。在我看来,协议似乎与C#接口相同。
然而,我注意到在网上浏览时,Objective-C有一个协议概念(source)和一个接口(虽然我不确定是什么区别是)。 Swift似乎没有 - 只是协议。
对于swift,有人可以解释一下Protocol和C#接口之间的区别/关系是什么吗?
更新:我很欣赏答案可能在功能上与列出的重复项相同,但我认为,鉴于这是在询问不同的语言,这个问题仍有其自身的优点。毕竟,swift的新开发人员可能不了解Java(除了Javascript,我没有)。期望某人知道完全不同的语言系统,以便得到他们的问题的答案有点多,不是吗??关于meta的This讨论也在讨论这个问题。
答案 0 :(得分:9)
Objective C协议的用途与Java / C#中的接口基本相同。 Objective C接口文件不同。与C类似,Objective C具有公开声明类的方法和属性的接口文件,然后在实现文件中实现。例如,您可能有一个类的接口文件,如下所示:
@interface
-(void)myMethod;
@end
然后在您的实现文件中实际实现该方法:
-(void)myMethod{
//code
}
Swift取消了单独的接口和实现文件。所以它只有协议。