Mat*_*art 22 syntax protocols class objective-c
在Objective-C中,可以将类作为参数传递给方法:
- (void) methodThatTakesClass:(Class)theClass;
Run Code Online (Sandbox Code Playgroud)
并且可以将符合协议的实例作为参数传递:
- (void) myConformInstance:(id <MyProtocol>)theObject;
Run Code Online (Sandbox Code Playgroud)
是否可以使用组合功能?采用符合特定协议的类的方法.
ugh*_*fhw 14
是.以下是一个有效的程序,它将记录NSObject类.
#import <Foundation/Foundation.h>
void f(Class <NSObject> c) {
NSLog(@"%@",c);
}
int main() {
f([NSObject class]);
}
Run Code Online (Sandbox Code Playgroud)
如果您尝试传递不符合NSObject的Object类(例如类),则会导致编译器错误.您也可以将它用于方法.
- (void)printClass:(Class <NSObject>)c;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5771 次 |
| 最近记录: |