ObjC 黑魔法:在 App 运行期间创建一个类型(Class)
Aug 26, 2025
ObjC 是动态语言,不需要预先在源码中声明就可以在运行期间创建一个 Class,有极大的灵活性,直接上代码举例:
#import <objc/runtime.h> FOUNDATION_EXPORT NS_SWIFT_UI_ACTOR id _Nullable createRuntimeClass(Class _Nullable superclass, NSString *name) { if (Class cls = objc_getClass(name.UTF8String)) { return [[cls alloc] init]; } if (Class cls = objc_allocateClassPair(superclass ?: NSObject.class, name.UTF8String, 0)) { objc_registerClassPair(cls); return [[cls alloc] init]; } return nil; } 使用的时候:
…