@interface和@protocol解释?
我想知道目标C中的@接口是什么? 是程序员想要声明variables,类名称还是方法名称的地方? 我不确定它是否像Java中的接口。 还有关于目标C中的@protocol。 看起来像Java中的接口更多。 谁能给我详细的解释,请。 我真的很感激。
接口是定义类的属性和操作的地方。 你也必须着手实施。
协议就像一个java接口。
例如
@protocol Printing -(void) print; @end
可以实施
通过声明(在界面中混淆)
@interface Fraction: NSObject <Printing, NSCopying> { //etc..
对于java开发人员来说,令人困惑的事情是花括号{}
不是接口的结尾,例如
@interface Forwarder : Object { id recipient; } //This is not the end of the interface - just the operations - (id) recipient; - (id) setRecipient:(id) _recipient; //these are attributes. @end //This is the end of the interface
如果你看看这个 +,可能会很好,我认为这对理解很有帮助
从文章:
@接口
C ++
foo.h中
#ifndef __FOO_H__ #define __FOO_H__ class Foo { ... };
Foo.cpp中
#include "Foo.h" ...
Objective-C的
foo.h中
@interface Foo : NSObject { ... } @end
Foo.m
#import "Foo.h" @implementation Foo ... @end
@协议
C ++
struct MyInterface { void foo() = 0; } class A : MyInterface { public: void override foo() { ... } }
Objective-C的
@protocol MyInterface -(void) foo; @end @interface Foo : NSObject <MyInterface> { -(void) foo {...} ... } @end
Objective-C中的@interface
接口与Java接口无关。 它只是声明一个类的公共接口,它的公共API。 (和成员variables一样,你已经看到了。)Java风格的接口在Objective-C中被称为协议,并使用@protocol
指令来声明。 你应该阅读苹果公司的“Objective-C编程语言” ,它是一本很好的书,简短易用。