swift如何动态创建对象
2016-03-22 15:38
295 查看
前言:
在一些大型的项目中常常在加载页面的时候根据服务器请求下来的数据动态创建视图控制器对象,最近的一个项目就有这一方面的需求,加载页面之前需要先请求服务器的数据得到一个JSON字典,根据里面字符串的名字创建对应的控制器,当然项目工程中有预留对应的控制器。之前在OC中利用字符串动态创建对象可以利用方法NSClassFromString获取到对应的类。在swift中获取类关键步骤是通过这个方法,但是跟OC有了很大的不同,多了一个命名空间.
创建一个对象,将对象打印出来之后在控制台可以看到类名之前多了一串字符串,该字符串就是命名空间。
swift动态创建对象:
为此要动态创建对象的时候需要先获取命名空间,步骤如下:
//动态获取命名空间: let nameSpace = NSBundle.mainBundle().infoDictionary!["CFBundleExecutable"] as! String //根据命名空间和传过来的控制器名字获取控制器的类 let controllerClass:AnyClass = NSClassFromString(nameSpace + "." + controllerName)! //告诉编译器真实的控制器类型,比如这个控制器本质是UITableViewController则: let realClass = controllerClass as! UITableViewController.Type //实例化这个控制器出来 let childController = realClass.init()
相关文章推荐
- 如何创建一个动态的数据窗口对象
- 【PB】如何创建一个动态的数据窗口对象?
- 如何在SpringMVC框架中利用Java反射机制和Javassist实现Java对象、属性、注解的动态创建生成
- 如何动态创建克隆对象以及克隆对象的简单用法
- 【PB】如何创建一个动态的数据窗口对象?
- 如何通过配置文件动态创建对象
- 如何动态创建Control对象,并为其指定初始属性值
- 如何创建一个动态的数据窗口对象
- C#如何根据字符串动态的创建对象(类)
- [Ruby]如何动态创建一个对象
- Swift通过类名动态创建对象的方式
- C#如何根据字符串动态的创建对象(类)?
- 如何利用Skyline6.1的接口创建动态对象DynamicObject
- createElement动态创建HTML对象脚本代码
- 如何只在heap上创建对象,如何只在stack上建立对象?
- Unity 3D 动态创建对象,并渲染贴图,动态添加删除脚本
- 动态创建类的对象
- 如何对动态创建控件进行验证以及在Ajax环境中的使用
- asp.net 动态创建TextBox控件及状态数据如何加载
- VC++如何创建与调用动态链接库