类名写入plist文件,动态引入类

简介: <p style="margin-top:0px; margin-bottom:0px; font-size:14px; font-family:Menlo">   把类名写入plist文件,动态引入类  </p> <p style="margin-top:0px; margin-bottom:0px; font-size:14px; font-family:Menlo">NSStrin

   把类名写入plist文件,动态引入类  

NSString *classNameKey = [moduleData objectForKey:@"class"];

    

    NSDictionary *moduleDic = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Module" ofType:@"plist"]];

    

    NSString *className = [moduleDic objectForKey:classNameKey];

    把对应的字符串映射成对应的类

    Class moduleClass = NSClassFromString(className);

    

    NSObject *module = [moduleClass new];

    

    UIViewController *moduleVC = nil;

    

    if ([module respondsToSelector:@selector(init)])

    {

        NSLog(@"module vc init");

        moduleVC = [module performSelector:@selector(init)];

    }

    if (!moduleVC)

    {

        NSLog(@"notice view");

        moduleVC = [[[NoticeViewController alloc] initWithNibName:nil bundle:nil] autorelease];

    }

    //传参数

    if ([moduleVC respondsToSelector:@selector(getModuleData:)])

    {

        [moduleVC performSelector:@selector(getModuleData:) withObject:moduleData];

    }

    //修改frame

    if ([moduleVC respondsToSelector:@selector(changeFrameWithRect:)])

    {

        [moduleVC performSelector:@selector(changeFrameWithRect:) withObject:NSStringFromCGRect(rect)];

    }

    //显示返回按钮

    if (isShow && [moduleVC respondsToSelector:@selector(createNavBar)])

    {

        [moduleVC performSelector:@selector(createNavBar) withObject:nil];

    }

    

    [module autorelease];

目录
相关文章
|
JSON 自然语言处理 JavaScript
介绍16个让你的代码变漂亮的属性
介绍16个让你的代码变漂亮的属性
303 0
介绍16个让你的代码变漂亮的属性
|
9月前
|
前端开发 小程序 PHP
laravel5.8(四)引入自定义常量文件及公共函数文件
开发过程中,我们一般会用到一些不会改变,或者改变不是很频繁的值,这样的值我们一般将他们定义成常量。 比如网站根目录,或者分页数,或者域名等等。 那我们如何在laravel5.8中引入自定义的常量文件及公共的函数文件呢。 大概有两种方式: 1:框架目录下引入(不推荐) 在框架目录vendor下新建常量文件const.php,以及公共函数文件function.php 在autoload.php文件中引入。 这种方法是可以的,但是不推荐,框架目录下最好都是框架自己的那些文件,正常来说,框架的文件我们在开发过程中,git是不会进行托管的。 2:在app目录下引入 在bootstrap目录下新建常量文件
61 0
|
XML 存储 安全
Java源码类 - Properties类及多种读取方式
Java源码类 - Properties类及多种读取方式
166 0
|
消息中间件 存储 安全
类是如何加载的?
类是如何加载的?
116 0
|
Java 开发工具 Windows
五、实现自定义配置属性动态加载
在我们日常开发项目时,经常需要自定义一些配置属性用于我们项目的一些启动配置,这里我们就直接在application-dev配置文件中直接实现一下自定义配置属性的读取与使用,便于我们在dev和prod配置文件来回切换。
88 0
五、实现自定义配置属性动态加载
|
前端开发 搜索推荐
使用localIdentName来自定义模块化的类名
一、设置样式 1.使用普通的style样式 2.启用css-modules 3.使用lo calI dent Name自定义生成的类名格式,可选的参数有
【Groovy】MOP 元对象协议与元编程 ( Expando 动态类 | 创建动态类 | 为动态类增加字段和方法 )
【Groovy】MOP 元对象协议与元编程 ( Expando 动态类 | 创建动态类 | 为动态类增加字段和方法 )
179 0
【Groovy】MOP 元对象协议与元编程 ( Expando 动态类 | 创建动态类 | 为动态类增加字段和方法 )
|
安全 Java Android开发
【Android 安全】DEX 加密 ( Proguard keep 用法 | Proguard 默认混淆结果 | 保留类及成员混淆结果 | 保留注解以及被注解修饰的类/成员/方法 )
【Android 安全】DEX 加密 ( Proguard keep 用法 | Proguard 默认混淆结果 | 保留类及成员混淆结果 | 保留注解以及被注解修饰的类/成员/方法 )
379 0
【Android 安全】DEX 加密 ( Proguard keep 用法 | Proguard 默认混淆结果 | 保留类及成员混淆结果 | 保留注解以及被注解修饰的类/成员/方法 )
|
Kotlin
【Kotlin】Kotlin 类的继承 二 ( 属性覆盖 | 属性覆盖的四种情况 | 常量 / 变量 属性覆盖 | 子类初始化与属性覆盖 )
【Kotlin】Kotlin 类的继承 二 ( 属性覆盖 | 属性覆盖的四种情况 | 常量 / 变量 属性覆盖 | 子类初始化与属性覆盖 )
326 0
|
存储 设计模式 Java
外部配置属性值是如何被绑定到XxxProperties类属性上的?--SpringBoot源码(五)
外部配置属性值是如何被绑定到XxxProperties类属性上的?--SpringBoot源码(五)
733 0