@selector的函数如何传参数/如何传递多个参数
2016-07-07 14:38
363 查看
不同的类会有不同的传递方式,参数名也不尽相同。如果是传单个参数的就不用集合,如果是传多个参数可以用类似nsarray,nsdictionary之类的集合传递。看下面例子:
例子1:
通过NSTimer看IPhone对@selector的函数如何传参数,
从上可以看出,NSTimer在对@selector(onTimer:)传递参数时,将传参的对象储存在了NSTimer的userInfo的字典里,在- (void)onTimer:(NSTimer
*)timer中
通过取出该字典加以使用。
例子2:
-(void)addNotificationAfterTime
{
[NSThread sleepForTimeInterval:20];//休眠多少秒之后
[self performSelectorOnMainThread:@selector(addNotifications:) withObject:[NSArray arrayWithObjects:@"1",@"2", nil] waitUntilDone:NO];
[NSThread sleepForTimeInterval:1.0];
}
这个其实也就是iphone对@selector对象传参的通用的形式。
转载请注明:http://www.cnblogs.com/langtianya/p/4199409.html
例子1:
通过NSTimer看IPhone对@selector的函数如何传参数,
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; if(oldView != nil) { [dict setObject:oldView forKey:@"oldView"]; } if(newView != nil) { [dict setObject:newView forKey:@"newView"]; } [NSTimer scheduledTimerWithTimeInterval:0.0 target:self selector:@selector(onTimer:) userInfo:dict repeats:NO]; [dict release]; - (void)onTimer:(NSTimer *)timer { UIView *oldView = [[timer userInfo] objectForKey:@"oldView"]; UIView *newView = [[timer userInfo] objectForKey:@"newView"]; [UIView animateWithDuration:2.0 delay:0 options:UIViewAnimationOptionAllowUserInteraction animations:^{ oldView.alpha = 0.0; newView.alpha = 1.0; } }
从上可以看出,NSTimer在对@selector(onTimer:)传递参数时,将传参的对象储存在了NSTimer的userInfo的字典里,在- (void)onTimer:(NSTimer
*)timer中
通过取出该字典加以使用。
例子2:
{
[NSThread sleepForTimeInterval:20];//休眠多少秒之后
[self performSelectorOnMainThread:@selector(addNotifications:) withObject:[NSArray arrayWithObjects:@"1",@"2", nil] waitUntilDone:NO];
[NSThread sleepForTimeInterval:1.0];
}
这个其实也就是iphone对@selector对象传参的通用的形式。
转载请注明:http://www.cnblogs.com/langtianya/p/4199409.html
相关文章推荐
- RPC方式调用webservice SOAP调用
- 指令集简介
- [51nod1766]树上的最远点对
- 数据结构之超级简单的红黑树
- PUT vs POST in REST
- HTML5应用程序缓存Application Cache
- LeetCode 17 Letter Combinations of a Phone Number
- 无用的知识
- iOS开发-常用第三方开源框架介绍
- Linux基础知识之帮助命令的使用
- 利用MyBatis Generator自动创建代码
- svn--使用MyEclipse插件
- 在CentOS上安装nginx服务器
- Uva 540 - Team Queue
- NTFS数据流及高级文件隐藏
- HTTP.sys漏洞验证及防护
- 转 手把手教你最简单的开源项目托管GitHub入门教程
- 欢迎使用CSDN-markdown编辑器
- iOS-最全的App上架教程
- Java基础知识--补充