刚刚发现,OC 中也有类似 Java 中的反射机制:
如下代码:
UIView *view =[[APLabel alloc] initWithNode:node];
可以改写为:
Class class= NSClassFromString(@"APLabel");
UIView *view =[[class alloc] initWithNode:node];
那么我们现有代码 UIFactory.m 中的 createViewFromNode: 函数只要稍加改造,就可以使代码更简洁,更易扩展。
1. 新建一个 plist 文件:ClassRegistry.plist
2. 对 createViewFromNode