zoukankan      html  css  js  c++  java
  • Objective-C:Foundation框架-常用类-NSObject

    NSObject是所有类的基类,其常见用法有: 

    #import <Foundation/Foundation.h>
    
    @interface Person : NSObject
    - (void)test;
    @end
    
    #import "Person.h"
    
    @implementation Person
    - (void)test {
        NSLog(@"调用了Person的test方法");
    }
    @end
    
    #import "Person.h"
    
    @interface Student : Person
    
    - (void)test;
    
    - (void)test2:(NSString *)a;
    
    @end
    
    #import "Student.h"
    
    @implementation Student
    
    - (void)test {
        NSLog(@"调用了test方法");
    }
    
    - (void)test2:(NSString *)a {
        NSLog(@"调用了test2方法:%@", a);
    }
    
    @end
    #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];
    }
  • 相关阅读:
    python-flask-SQLAlchemy
    python-flask-script定制manage命令
    python-flask框架
    python-flask-wtforms
    python-思路整理-虚拟环境
    python--django-admin定制页面流程:
    友盟iOS微信登陆没有回调的原因
    用同一个工程创建两个不同版本的应用
    简单方法实现手势解锁
    iOS开发中地图开发的简单应用
  • 原文地址:https://www.cnblogs.com/yif1991/p/5068293.html
Copyright © 2011-2022 走看看