我最近看到了很多代码如下:
id<foo> aBar;
Run Code Online (Sandbox Code Playgroud)
通常这是我在类声明中看到的,例如:
@interface bar : UIViewController <UITableViewDelegate, UITableViewDataSource>
Run Code Online (Sandbox Code Playgroud)
以上是否意味着aBar可能是类bar的实例并且承诺拥有在foo协议中声明的所有方法?
Pet*_*sey 16
关.这意味着aBar它将是符合协议的类的实例foo.它可能是bar(如果该类符合foo)或另一个符合的类foo.您从该声明中得到的所有信息都aBar符合协议.
此外,这些只在编译时检查,而不是运行时.可以将对象放在aBar不符合类的实例中foo.但是编译器会在大多数情况下警告你.
| 归档时间: |
|
| 查看次数: |
2732 次 |
| 最近记录: |