OC3_选择器
2015-06-16 16:34
302 查看
// // Dog.h // OC3_选择器 // // Created by zhangxueming on 15/6/16. // Copyright (c) 2015年 zhangxueming. All rights reserved. // #import <Foundation/Foundation.h> @interface Dog : NSObject @property (copy)NSString *name; @property (assign,nonatomic)NSInteger age; - (void)bark:(NSNumber *)count; @end
// // Dog.m // OC3_选择器 // // Created by zhangxueming on 15/6/16. // Copyright (c) 2015年 zhangxueming. All rights reserved. // #import "Dog.h" @implementation Dog - (void)bark:(NSNumber *)count { NSInteger cnt = [count integerValue]; for (NSInteger i=0; i<cnt; i++) { NSLog(@"Wang wang wang ..."); } } @end
// // main.m // OC3_选择器 // // Created by zhangxueming on 15/6/16. // Copyright (c) 2015年 zhangxueming. All rights reserved. // #import <Foundation/Foundation.h> #import "Dog.h" //函数指针变量 int add(int a, int b) { return a+b; } //选择器 //运行层次概念 //sel int main(int argc, const char * argv[]) { @autoreleasepool { int (*pfunc)(int, int) = add; NSLog(@"add = %d", pfunc(3,5)); Dog *xiaoBai = [[Dog alloc] init]; //[xiaoBai bark:[NSNumber numberWithInt:4]]; //1.利用@selector关键字生成选择器 #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" //方法一: //SEL select = @selector(bark:); //方法二: //利用方法名的字符串对象生成选择器 SEL select = NSSelectorFromString(@"bark:"); //方法三: //利用C语言的字符串生成选择器 //SEL select = sel_getUid("bark:"); //获取选择器中保存的方法名 NSLog(@"%s", sel_getName(select)); NSLog(@"%@", NSStringFromSelector(select)); //NSLog(@"%p", select); //判断对象所在的类是否实现选择器中的方法 if([xiaoBai respondsToSelector:select]) { //执行选择器中保存的方法 //[xiaoBai performSelector:select withObject:[NSNumber numberWithInteger:10]]; [xiaoBai bark:[NSNumber numberWithInteger:10]]; } #pragma clang diagnostic pop } return 0; }
相关文章推荐
- mac下搭建discuz论坛
- Android中如何查看内存(上)
- App工具大杂烩,五花八门闹创业(武汉站)
- Dll导出对话框导致内存泄露
- ubuntu安装chrome
- 解决找不到动态库libpthread.so
- 使用OpenCVC随机森林
- 协同过滤推荐算法
- java TreeMap的用法
- sigaction 用法实例
- Spring后台,通过name取值
- OC2_点语法(属性关键字)
- 协同过滤推荐算法
- C#连接Oracle数据库查询数据
- 数据库设计范式的理解
- ANT-BUILD.XML
- android 开机不弹出Launcher选择,直接进入需要默认的Launcher,
- OC1_点语法
- JAVASE学习笔记:第十一章 数据流
- 约瑟夫问题 数组(最好还是用循环指针)