@protocol Runnable
- (id<Runnable>) works; //this compiles fine
- (Runnable *) broke; // get a compile error saying Expected ')' before 'Runnable'
@end
Run Code Online (Sandbox Code Playgroud)
我不确定我理解为什么xCode抱怨这- (Runnable *) broke;
条线
Obj-C中的协议在语法上看起来不像Java中的"接口",其中接口指针和子类指针的语法基本相同.
该id<Runnable>
是你说"符合对象的惯用方式Runnable
.一种id
是引用任何类型的对象,和<
>
符号表达一个明确的一致性进行类型检查的目的,给定的协议.
如果你说Foo *
,你指的是任何一种类型的对象Foo
或其子类之一.
这恰好是Obj-C语法.使用这种语法,语义类似于您所获得的语义,例如Java.
归档时间: |
|
查看次数: |
87 次 |
最近记录: |