美文网首页
OC中的反射机制

OC中的反射机制

作者: 小凡凡520 | 来源:发表于2018-11-26 15:35 被阅读2次

不能将 swift 中的自定义类进行反射,系统的类可以

class反射
  • 过类名的字符串形式实例化对象
// swift
override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    
    if let clasName = NSClassFromString("Person") as? Person.Type {
        let person = clasName.init()
        
        print(person)
    }
}

// OC
Class class = NSClassFromString(@"Person");
Student *stu = [[class alloc] init];

// 输出:
<Person: 0x600000012800>
  • 类名变为字符串
override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    
    let name = NSStringFromClass(Person.classForCoder())
    print(name)
}

// 输出
<Person: 0x60400001c8b0>
Person
SEL的反射
  • 通过方法的字符串形式实例化方法
- (void)setName {
    NSLog(@"test");
}

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    
    if let clasName = NSClassFromString("Person") as? Person.Type {
        let person = clasName.init()
        
        let sel = NSSelectorFromString("setName")
        
        person.perform(sel)
    }
}

// 输出
2018-11-26 15:31:45.972108+0800 Demo[5981:625183] test
  • 将方法变成字符串
override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    
    if let clasName = NSClassFromString("Person") as? Person.Type {
        let person = clasName.init()
        
        let sel = NSSelectorFromString("setName")
        
        person.perform(sel)
        
        let className = NSStringFromSelector(sel)
        print(clasName)
    }
}

相关文章

  • Effective-OC读书笔记(1)

    针对于这几天在读effective-oc相关书籍,笔者基于OC基础做一些总结 1、反射机制 OC中的反射机制 体现...

  • OC中的反射机制

    不能将 swift 中的自定义类进行反射,系统的类可以 class反射 过类名的字符串形式实例化对象 类名变为字符...

  • OC中的反射机制

    1). class反射 通过类名的字符串形式实例化对象。Class class = NSClassFromStri...

  • OC中的反射机制

    简单聊一下概念和使用 1). class反射 通过类名的字符串形式实例化对象。 Class class = NSC...

  • OC中的反射机制

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

  • OC中的反射机制

    你是否接触过OC中的反射机制?简单聊一下概念和使用1). class反射 2). SEL的反射

  • iOS面试题

    1、说一下OC的反射机制; OC 的反射机制以及使用场景 2、block的实质是什么?有几种block?分别是怎样...

  • 问题大全

    1.说一下OC的反射机制 所有的oc 对象都是继承于nsobject nsobject 提供了如下反射方法反射方...

  • 【转载】objc反射机制

    反射机制的基本概念: 找了好久oc的反射机制,只能朦胧的得到一句:跟java的反射机制相似 那么笔者就先贴上jav...

  • OC反射机制

    概述 在计算机科学中,反射是指计算机程序在运行时(Run time)可以访问、检测和修改它本身状态或行为的一种能力...

网友评论

      本文标题:OC中的反射机制

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