lookup-1.m
来自「linux下编程用 编译软件」· M 代码 · 共 55 行
M
55 行
/* { dg-do run { target *-*-darwin* } } */#include <objc/Object.h>#include <stdlib.h>typedef struct MyWidget { int a;} MyWidget;MyWidget gWidget = { 17 };@protocol MyProto- (MyWidget *)widget;@end@interface Foo: Object@end@interface Bar: Foo <MyProto>@end@interface Container: Object+ (MyWidget *)elementForView:(Foo *)view;@end@implementation Foo@end@implementation Bar- (MyWidget *)widget { return &gWidget;}@end@implementation Container+ (MyWidget *)elementForView:(Foo *)view{ MyWidget *widget = nil; if ([view conformsTo:@protocol(MyProto)]) { widget = [(Foo <MyProto> *)view widget]; } return widget;}@endint main(void) { id view = [Bar new]; MyWidget *w = [Container elementForView: view]; if (!w || w->a != 17) abort (); return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?