NSObject和反射2。

commend +R  run

id stu=[Student student]; // –>   Student *stu=[Student student];

:也是方法名的一部分

主要是反射:reflect 根据字符串来实例化一个对象

//#pragma mark reflect according to class name

void reflect(){

NSString *str=@”Person”;

Class class=NSClassFromString(str);//convert a string to a class

Person *person=[[class alloc]init];

NSLog(@”%@”,person);

[person release];

NSString *str=NSStringFromClass([Person class]);//obtain class name

}

//#pragma mark reflect method

Person.h

@interface Person:NSObject

-(void)test;

@end

Person.m

@implementation

-(void)test{

NSLog(@”Call test method in Person.”);

}

@end

void reflectmethod(){

NSString *method=@”test”;

//Convert this string to a method

//通过字符串调用方法名

SEL selector=NSSelectorFromString(method);

[person performSelector:(selector)];

[person release];

// Convert a(SEL) selector to a string

NSString *selectorName=NSStringFromSelector(selector);

}

NSObject和反射2的更多相关文章

  1. NSObject和反射

    如何NSObject和反射 NSObject 常用方法 如何判断 某个对象是否属于某个类或子类 -(BOOL)isKindOfClass:(Class)aClass 判断是否为aClass的实例(不包 ...

  2. [OC Foundation框架 - 16] NSObject和反射

    1.判断某个对象是否属于一个类 Student *stu = [[[Student alloc] init] autorelease]; BOOL result= [stu isKindOfClass ...

  3. Object-c 语法 - NSObject常用方法和反射

    NSObject常用方法 - (BOOL)isKindOfClass:(Class)aClass //判断是否为aClass或者aClass的子类的实例,aClass可以通过[类名 class]获取 ...

  4. NSObject常用方法和反射

    // 类的反射    NSString *str = @"Person";    Class class = NSClassFromString(str);        Pers ...

  5. IOS_反射

    // // PJReflect.m // 新浪微博 // // Created by pj on 14-8-8. // Copyright (c) 2014年 pj. All rights reser ...

  6. objective-c(反射)

    objective-c中提供类似JAVA的反射特性,给出基本例子如下: #import <Foundation/Foundation.h> @interface ClassA : NSOb ...

  7. swift 学习(二)基础知识 (函数,闭包,ARC,柯里化,反射)

    函数 func x(a:Int, b:Int)  {}   func x(a:Int, b:Int) -> Void {}  func x(a:Int, b:Int) ->(Int,Int ...

  8. Objective-C 中基于RunTime实现的反射

    一.反射 反射,一般表现在字符串和Class转换,字符串和内部方法转换,字符串和属性的转换(取值和赋值). 二.Objective-C中的反射 OC的反射是基于其Runtime实现的. 以执行某个函数 ...

  9. ios反射

    http://www.cr173.com/html/18677_1.html 1.反射获取类属性名和属性类型 unsigned ; objc_property_t *properties = clas ...

随机推荐

  1. 【Trie】Immediate Decodability

    [题目链接]: https://loj.ac/problem/10052 [题意]: 就是给一些串,是否存在两个串是相同前缀的. [题解] 模板题,不想解释了. [代码]: #include<c ...

  2. POJ 1860 汇率 SPFA

    题意 有多种汇币,汇币之间可以交换,这需要手续费,当你用100A币交换B币时,A到B的汇率是29.75,手续费是0.39,那么你可以得到(100 - 0.39) * 29.75 = 2963.3975 ...

  3. C# DataTable根据字段排序

    DataTable dt = new DataTable(); dt.Columns.Add("Name"); dt.Columns.Add("Age");// ...

  4. C#基础知识 (转)

    https://www.cnblogs.com/zhouzhou-aspnet/articles/2591596.html(原文地址) 本文是一个菜鸟所写,本文面向的人群就是像我这样的小菜鸟,工作一年 ...

  5. aspectcore 简单解析

    .netcore 下aspectcore  的使用 动态代理: static void Main(string[] args) { Console.WriteLine("Hello Worl ...

  6. git冲突Pull is not possible because you have unmerged files

    本地的push和merge会形成MERGE-HEAD(FETCH-HEAD), HEAD(PUSH-HEAD)这样的引用.HEAD代表本地最近成功push后形成的引用.MERGE-HEAD表示成功pu ...

  7. linux下Django Nginx+uwsgi 安装配置

    原文链接 在前面的章节中我们使用 python manage.py runserver 来运行服务器.这只适用测试环境中使用. 正式发布的服务,我们需要一个可以稳定而持续的服务器,比如apache, ...

  8. jEasyUI 菜单与按钮

    jQuery EasyUI 菜单与按钮 – 创建简单的菜单 <div id="mm" class="easyui-menu" style="wi ...

  9. 《Python数据科学手册》

    <Python数据科学手册>[美]Jake VanderPlas著 陶俊杰译 Absorb what is useful, discard what is not, and  add wh ...

  10. 【Day3】3.提取商城分类结构

    import re with open('index.html','r',encoding='utf-8') as f: html = re.sub('\n','',f.read()) section ...