对于SEL的简单使用
//
// main.m
// selector
//
// Created by hhg on 15-6-17.
// Copyright (c) 2015年 hhg. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Person *p = [[Person alloc] init];
SEL k = @selector(jump);
[p eat];
[p mySelector:k];
}
return 0;
}
下面是个Person类
//
// Person.h
// selector
//
// Created by hhg on 15-6-17.
// Copyright (c) 2015年 hhg. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Person : NSObject
- (void)eat;
- (void)jump;
- (void)mySelector:(SEL)k;
@end
//
// Person.m
// selector
//
// Created by hhg on 15-6-17.
// Copyright (c) 2015年 hhg. All rights reserved.
//
#import "Person.h"
@implementation Person
- (void)eat {
NSLog(@"我正在吃饭....请勿打扰");
}
- (void)jump {
NSLog(@"我正在跳跃....请勿打扰");
}
- (void)mySelector:(SEL)k {
IMP imp = [self methodForSelector:k];
void (*func)(id, SEL) = (void *)imp;
func(self, k);
}
@end