原来 main 函数中就有 runtime 的典型示例
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
UIApplication 不知道自己的 delegate 具体是什么,可能是 AppDelegate 类,也可能是 XXXAppDelegate 类,所以在编译完成后,UIApplication 不能确定代理指向什么,这只能求助于 runtime,在运行时通过 class name 动态创建代理对象。
PS:感谢学弟的问题。有些远在天边的道理,其实近在眼前