美文网首页
通过类名实例化一个对象

通过类名实例化一个对象

作者: 张小飞_ | 来源:发表于2017-07-01 17:52 被阅读0次

通过类名实例化一个对象有三种方式:

OneObject *object = [[OneObject alloc] init];
OneObject *object = [OneObject new];
Class object = NSClassFromString(OneObject);

前面的2种方法对象实例化是我们常见的方法,第3种方法是runtime 的方法。其区别在于:

  • 是否需要导入类的头文件(涉及到弱化连接问题);
  • 通过前2种都需要 import 头文件,而第3种方法就不需要导入头文件,只需要知道类的名字就可以了。使用这种方法的好处是弱化连接,因此并不会把没有的Framework也link到程序中。

这种方式的一般使用如下:

NSString *myClassStr = @"myClass"; 
Class myClazz = NSClassFromString(myClassStr); 
if (myClazz) { 
    id myClassInit = [[myClazz alloc] init];
}

相关文章

  • Java反射机制

    【案例1】通过一个对象获得完整的包名和类名 【案例2】实例化Class类对象 【案例3】通过Class实例化其他类...

  • iOS + -

    +是类方法,-是对象方法. + 是可以通过类名直接调用这个方法, - 则要实例化一个对象,然后通过实例化的对象来调...

  • 重捡Java(七)类与对象 构造方法

    通过一个类创建一个对象,这个过程叫做实例化 实例化是通过调用构造方法(又叫做构造器)实现的 构造方法与类名一致 例...

  • iOS加号和减号函数的区别

    加号 是可以通过类名直接调用这个方法, 而减号则要实例化逸个对象,然后通过实例化的对象来调用该方法! (+ 和ja...

  • 面向对象

    实例化对象 使用 类名() 可以实例化一个对象,你可以使用给这个实例化的对象起一个名字,关于对象的初始化: 对象的...

  • 面向对象

    1.面向对象 定义一个类People,通过实例化创建对象zhangsan,再通过实例化对象执行方法buy(),ea...

  • 反射

    正常方式:引入需要的“包.类”名称 ---> 通过new实例化 --->取得实例化对象反射方式:实例化对象--->...

  • OC的反射机制

    Class反射 // 通过类名的字符串形式实例化对象 Class class = NSSClassFromStri...

  • OC中的反射机制

    class反射 通过类名的字符串形式实例化对象 Class class NSClassFromString@(@"...

  • 24.面向对象(类、封装)

    面向对象(类、封装) 一、类与实例对象 1). 类的定义与实例化 实例化之前先定义类,类名要大写 (解释性语言特点...

网友评论

      本文标题:通过类名实例化一个对象

      本文链接:https://www.haomeiwen.com/subject/lzkgcxtx.html