@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 次 |
| 最近记录: |