SEL selector选择器

//
//  main.m
//  Selector
//
//  Created by MAC on 15/12/24.
//  Copyright © 2015年 MAC. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Demo.h"
#import "Dog.h"
#import "Animal.h"
#import "Person.h"
#import "Cat.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Demo *D = [[Demo alloc]init];
        [D method1];
        [D executeSelector];
        Person *p1 = [[Person alloc]init];
        Dog *d = [[Dog alloc]init];
        Cat *c = [[Cat alloc]init];
        [p1 care:d];
        [p1 care:c];
        
        
        
    }
    return 0;
}
//
//  Demo.h
//  Selector
//
//  Created by MAC on 15/12/24.
//  Copyright © 2015年 MAC. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Demo : NSObject
-(void)method1;
-(void)method2;
-(void)executeSelector;
@end
//
//  Demo.m
//  Selector
//
//  Created by MAC on 15/12/24.
//  Copyright © 2015年 MAC. All rights reserved.
//

#import "Demo.h"

@implementation Demo
-(void)method1{
    NSLog(@"method1");
}
-(void)method2{
    NSLog(@"method2");
}
-(void)executeSelector{
    //定义
    //SELW
    SEL S = @selector(method1);
    [self performSelector:S];
    //2. NSSelectorFromString 方法名称可以没有  
    SEL s2 = NSSelectorFromString(@"method2");
    [self performSelector:s2];
}
@end

------------

//
//  Dog.h
#import <Foundation/Foundation.h>
#import "Animal.h"
@interface Dog : Animal

@end
//
//  Dog.m

#import "Dog.h"

@implementation Dog
-(void)run{
    NSLog(@"dog is run...");
}
@end
//
//  Cat.h


#import <Foundation/Foundation.h>
#import "Animal.h"
@interface Cat : Animal

@end
//
//  Cat.m


#import "Cat.h"

@implementation Cat
-(void)run{
    NSLog(@"cat is run...");
}
@end
#import <Foundation/Foundation.h>

@interface Animal : NSObject

@end

#import "Animal.h"

@implementation Animal

@end
//  Person.h
#import <Foundation/Foundation.h>
#import "Animal.h"
@interface Person : NSObject
-(void)care:(Animal*)pet;
@end
//
//  Person.m
#import "Person.h"
@implementation Person
-(void)care:(Animal *)pet{
  //  [pet run];
    SEL s = NSSelectorFromString(@"run");
    [pet performSelector:s];
}
@end

 

转载于:https://www.cnblogs.com/WJR12/p/5073540.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值