foundation-NSObject和反射

来源:互联网 发布:机器人走迷宫编程 编辑:程序博客网 时间:2024/06/10 00:44
#import <Foundation/Foundation.h>#import "Student.h"#import "Person.h"#pragma mark object常用方法void objectUse(){    Student *stu = [[Student alloc]init];    //isKindOfClass判断对象是否属于某个类,或其子类    if ([stu isKindOfClass:[Person class]]) {        NSLog(@"stu属于或继承自person");    }    //isMemberOfClass对象是否属于某个类,不包括子类    Boolean reuslt = [stu isMemberOfClass:[Person class]];    NSLog(@"%i",reuslt);    //直接调用    //[stu test];    //间接调用    [stu performSelector:@selector(test1)];    //withObject只能传id,不能传基本数据类型    [stu performSelector:@selector(test2:) withObject:@"12345  00--==="];}void reflect(){    //类名反射    NSString *str = @"Person";    Class class = NSClassFromString(str);    Person *p = [[class alloc]init];    NSLog(@"%@",p);        //class变字符串    NSString *str1 = NSStringFromClass([Person class]);    NSLog(@"%@",str1);        //方法的反射    NSString *method = @"test22";    SEL selector = NSSelectorFromString(method);    [p performSelector:selector];    //将SEL转化为字符串    NSString *str3 = NSStringFromSelector(selector);    NSLog(@"%@",str3);    }int main(int argc, const char * argv[]) {    @autoreleasepool {        reflect();    }    return 0;}

0 0
原创粉丝点击