📄 class_self-2.m
字号:
/* Contributed by Nicola Pero - Fri Oct 26 22:39:32 BST 2001 */#include <objc/objc.h>/* Test calling a class method on self where self has been redefined to be another class - the call requires a cast *//* The first class */struct d{ int a;};@interface ClassA{ Class isa;}+ (Class) class;+ (struct d) method;@end@implementation ClassA+ (Class) class{ return self;}+ (struct d) method{ struct d u; u.a = 5; return u;}#ifdef __NEXT_RUNTIME__ + initialize { return self; }#endif@end/* The second class */@interface TestClass{ Class isa;}+ (void) test;@end@implementation TestClass+ (void) test{ self = [ClassA class]; if ([(Class)self method].a != 5) { abort (); }}#ifdef __NEXT_RUNTIME__ + initialize { return self; }#endif@endint main (void){ [TestClass test]; return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -