关闭

OC之【NSObject使用】

标签: objective-cios
883人阅读 评论(0) 收藏 举报
分类:

main.m文件

#import <Foundation/Foundation.h>

#import "Student.h"

#import "Person.h"


#pragma mark NSObject常用方法

void objUse() {

   Student *stu = [[[Studentalloc] init]autorelease];

    

    // isKindOfClass判断对象是否属于某个类或者 子类

   if ( [stu isKindOfClass:[Personclass]] ) {

        // NSLog(@"stu属于Person或者继承自Person");

    }

    

    // isMemberOfClass判断对象是否属于某个类(不包括子类)

   BOOL result = [stu isMemberOfClass:[Student class]];

    // NSLog(@"%i", result);

    

    

    // 直接调用

    // [stu test];

    

    // 间接调用

    [stuperformSelector:@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([Personclass]);

    

    

    // 方法的反射

   NSString *method = @"test";

   SEL selector = NSSelectorFromString(method);

    [personperformSelector:selector];

    

    // SEL转换为字符串

   NSString *selectorName = NSStringFromSelector(selector);

    

    

    [personrelease];

}


int main(int argc,const char * argv[])

{


    @autoreleasepool {

       reflect();

    }

   return 0;

}


Person.h文件

#import <Foundation/Foundation.h>


@interface Person :NSObject

- (void)test;

@end



Person.m文件

#import "Person.h"

@implementation Person

- (void)test {

    NSLog(@"调用了Persontest方法");

}

@end



Student.h文件

#import "Person.h"

@interface Student :Person


- (void)test;


- (void)test2:(NSString *)a;


@end



Student.m文件

#import "Student.h"

@implementation Student

- (void)test {

    NSLog(@"调用了test方法");

}


- (void)test2:(NSString *)a {

    NSLog(@"调用了test2方法:%@", a);

}


@end



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:614981次
    • 积分:9222
    • 等级:
    • 排名:第1982名
    • 原创:272篇
    • 转载:235篇
    • 译文:14篇
    • 评论:31条
    博客专栏
    最新评论