黑马程序员-OC笔记(九)NSObject 的常用方法

来源:互联网 发布:Php 微信众筹系统 编辑:程序博客网 时间:2024/06/13 19:19

 




NSObject  的常用方法



#import <Foundation/Foundation.h>#import "Student.h"#import "Person.h"#pragma mark NSObject常用方法void objUse() {    Student *stu = [[[Student alloc] init] autorelease];        // isKindOfClass判断对象是否属于某个类 或者 子类    if ( [stu isKindOfClass:[Person class]] ) {        // NSLog(@"stu属于Person或者继承自Person");    }        // isMemberOfClass判断对象是否属于某个类(不包括子类)    BOOL result = [stu isMemberOfClass:[Student class]];    // NSLog(@"%i", result);            // 直接调用    // [stu test];        // 间接调用    [stu performSelector:@selector(test)];    // [stu performSelector:@selector(test2:) withObject:@"abc"];    // 延迟2秒后调用test2:方法    [stu performSelector:@selector(test2:) withObject:@"abc" afterDelay:2];}void reflect() {      // 类的反射    NSString *str = @"Person";    //  注意这是个函数    Class class = NSClassFromString(str);        Person *person = [[class alloc] init];    NSLog(@"%@", person);            // Class变成字符串    NSString *name =  NSStringFromClass([Person class]);            // 方法的反射    NSString *method = @"test";    SEL selector = NSSelectorFromString(method);    [person performSelector:selector];        // 将SEL转换为字符串    NSString *selectorName = NSStringFromSelector(selector);        [person release];}int main(int argc, const char * argv[]){    @autoreleasepool {        reflect();    }    return 0;}


0 0
原创粉丝点击