objective-c里的方法指针IMP的用法
SGPopSelectView.h
@interface SGPopSelectView : UIView
@property (nonatomic, assign) SEL selector;
@property (nonatomic, assign) IMP functionIMP;
@end
------------------------------------------------------------------------------------------------------------------------
SGPopSelectView.m
@interface SGPopSelectView () <UITableViewDelegate, UITableViewDataSource>
@property (nonatomic, strong) UITableView *tableView;
@end
@implementation SGPopSelectView
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
_selectedIndex = indexPath.row;
[tableView reloadData];
self.functionIMP(self, _selector, indexPath.row);//当选择菜单的某一项时,调用方法指针指向的方法
}
------------------------------------------------------------------------------------------------------------------------
UIHotWordViewController.h
#import <UIKit/UIKit.h>
#import "REMenu.h"
#import "SGPopSelectView.h"
@interface UIHotWordViewController : UIViewController
@property (strong,nonatomic) REMenu *menu;
@property (retain, nonatomic) IBOutlet UIButton *btnHotWord;
@property (nonatomic, strong) SGPopSelectView *popView;
@property (nonatomic, strong) NSArray *selections;
@property (nonatomic, retain) NSString *r;
@end
------------------------------------------------------------------------------------------------------------------------
UIHotWordViewController.m
- (void)viewDidLoad {
[super viewDidLoad];
self.selections = @[@"句子",@"作品",@"作者"];
self.popView = [[SGPopSelectView alloc] init];
self.popView.selector = @selector(rows_selected:);//指定selector
self.popView.functionIMP = [self methodForSelector:@selector(rows_selected:)];//指定函数指针
}
-(void) rows_selected:(NSInteger) idx {
NSLog(@"选择了项%d", idx);//选择菜单后会调用此方法
}
objective-c里的方法指针IMP的用法的更多相关文章
- Method Swizzle黑魔法,修改 ios 系统类库方法 SEL IMP
Method Swizzle黑魔法,修改 ios 系统类库方法 版权声明:本文为博主原创文章,未经博主允许不得转载. 一般来说,系统提供的方法已经足够开发了,但是有的时候有些需求用普通方法不好做. ...
- Objective-C 方法交换实践(二) - 方法指针交换
一. 基本函数 根据 sel 得到 class 的实例方法 Method class_getInstanceMethod(Class cls, SEL name) 根据 sel 得到 class 的函 ...
- 【转】JavaScript里的this指针
用自然语言的角度理解JavaScript中的this关键字 <script type="text/javascript"> function ftn03(){ var ...
- 从java文件和CS文件里查询方法使用次数工具
前几天,领导让我找一下老系统(Java)里getRemoteUser方法都哪个文件用了,package是什么,方法被调用了多少次,当时因为着急,所以,直接人工找的,但是以后要是再出现,人工找就太讨厌了 ...
- Android中 服务里的方法抽取成接口
1 写个类继承Service 重写 onBind方法 返回一个IBinder 对象(传递到连接成功时用) 2 服务中 写一个内部类 继承IBinder 并且实现一个接口(用于抽取方法)继承IBinde ...
- 在JS中调用CS里的方法(PageMethods)
在JS中调用CS里的方法(PageMethods) 2014年04月28日 11:18:18 被动 阅读数:2998 最近一直在看别人写好的一个项目的源代码,感觉好多东西都是之前没有接触过的.今天 ...
- Python里format()方法基本使用
'''第一种:自然连接''' #format 连接字符串 str = '{}使用的python是{}版本'.format('我','3.6.5') print(str) #打印结果:我使用的pytho ...
- .NET CORE控制器里的方法取传参的坑
把以前的ASP.NET MVC的项目改成用.NET CORE来写,写好了部署上去了,结果问题一大堆,今天慢慢检查了一下,发现一个大坑: 写控制器里的方法接收参数数都是直接写在控制器的方法参数里的,如: ...
- sql server中调用c#写的dll里的方法
最近有一项目: 一超市管理系统单机版,运行在WIN2003+SQL2005上,每天超市关门都都会关电脑,现客户要新加功能,每天关门下班后回家可以上网查看超市管理系统的数据库里的相关数据,然后再做一些原 ...
随机推荐
- CI_Autocomplete_2.0.php轻松实现Bebeans与Codeigniter的智能提示
在你的NetBeans项目下建立一个CI_Autocomplete_2.0.php的文件,粘贴以下代码:(codeigniter太旧了,其实性能不行,应该没人更了,换了吧,别学这玩意了,坑人) < ...
- shell脚本积累
统计当前目录下文件夹的大小 for d in $(ls) do du -sh ./$d done 获取之前日期date +"%Y%m%d" -d "-n days&q ...
- Matlab中find函数的使用
一.问题来源 看到了 min_score_pos = find(A0_scores==min(A0_scores), 1); [r,c] = find(X,k),返回X中第k个非零元素的行列位置. 二 ...
- java web项目 。classpath 文件解析
eclipse工程中.classpath文件含义: 下面是一个.classpath文件内容: < ?xml version="1.0" encoding="UTF- ...
- 比較Backbone.js, Angular.js, Ember.js, Knockout.js 心得
還記得第一次寫網站的時候,我無意間寫成了 SPA(single page application),當時還沒有SPA這個詞,後來因為廣告主需要不同 url location 頁面的廣告展示,只好把部分 ...
- CC150 上面重要的题目总结
第一章 : 全部重要 (1.6, 1.7 Leetcode上有). 1.5 面A碰到 (string compression) 1.7面Z碰到 (set 0) 1.8面Bigfish碰到 (strin ...
- C# foreach循环绑定key数组和value 数组(备用)
<div class="ContextualTab inner_warp clearfix" data-max="2" data-blur=false d ...
- FileOutputStream和FileInputStream
package one.string; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFound ...
- jQuery对象与Dom对象的相互转换
1.jQuery对象转换为Dom对象 [index] var $d = $("#id"); ]; get(index) var $d = $("#id"); ) ...
- activiti5.13 框架 数据库设计说明书
转载自:http://www.cnblogs.com/llzgzljl/p/3356108.html activiti5.13 框架 数据库设计说明书 1.结构设计 1.1. 逻辑结构设计 Ac ...