iOS 【UIKit-performSelector】
2015-09-28 12:00
513 查看
在项目中,常常用到performSelectorXXX之类的方法,而且有很多类似方法;今天就来召集一下!
1.performSelectorOnMainThread:withObject:waitUntilDone:
-(void)performSelectorOnMainThread:(SEL)aSelectorwithObject:(id)argwaitUntilDone:(BOOL)wait
在主线程上执行指定的方法,使用默认的模式(NSDefaultRunLoopMode)。
默认的模式指:主线程中的方法进行排队,是一个循环队列,并且循环执行。
参数:
aSelector:要在主线程执行的方法,该方法不能有返回值,并且只能有一个参数。
arg:要传递的参数,如果无参数,就设为nil
wait:要执行的aSelector方法,是否马上执行。
如果设置为YES:等待当前线程执行完以后,主线程才会执行aSelector方法;
设置为NO:不等待当前线程执行完,就在主线程上执行aSelector方法。
如果,当前线程就是主线程,那么aSelector方法会马上执行。
该方法用途:因为iPhone编程,对UI的修改,只能在主线程上执行。可以用该方法来完成UI的修改。
2.performSelector:withObject:afterDelay:
-(void)performSelector:(SEL)aSelectorwithObject:(id)anArgumentafterDelay:(NSTimeInterval)delay
在当前线程中执行指定的方法,使用默认模式,并指定延迟。
参数:
aSelector:指定的方法。含义同上,不在赘述。
anArgument:同上
delay:指定延迟时间(秒)。
3.performSelector
我们常常用到以下3个方法,分别为:
- (id)performSelector:(SEL)aSelector;
- (id)performSelector:(SEL)aSelector withObject:(id)object;
- (id)performSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2;
首先,定义要调用的方法
-(void)methodNoParam{
NSLog(@"methodNoParam");
}
-(void)methodWithOneParam:(id)paramFirst{
NSLog(@"methodWithOneParam: %@", paramFirst);
}
-(void)methodWithParams:(id)paramFirst andParamSecond:(id) paramSecond{
NSLog(@"methodWithOneParam: %@,%@",paramFirst,paramSecond);
}
其次,进行调用
//没有参数
BOOL isNoParam= [self.selfViewControllerDelegate
respondsToSelector:@selector(methodNoParam)];
if (isNoParam) {
[self.selfViewControllerDelegate
performSelector:@selector(methodNoParam)];
}
//
一个参数
BOOL isOneParam= [self.selfViewControllerDelegate
respondsToSelector:@selector(methodWithOneParam:)];
if (isOneParam) {
[self.selfViewControllerDelegate
performSelector:@selector(methodWithOneParam:)
withObject:@"firsht"];
}
//
二个参数
BOOL isParams= [self.selfViewControllerDelegate
respondsToSelector:@selector(methodWithParams:andParamSecond:)];
if (isParams) {
[self.selfViewControllerDelegate
performSelector:@selector(methodWithParams:andParamSecond:)
withObject:@"first"
withObject:@"second"];
}
转载自:http://blog.sina.com.cn/zhenwawaer
1.performSelectorOnMainThread:withObject:waitUntilDone:
-(void)performSelectorOnMainThread:(SEL)aSelectorwithObject:(id)argwaitUntilDone:(BOOL)wait
在主线程上执行指定的方法,使用默认的模式(NSDefaultRunLoopMode)。
默认的模式指:主线程中的方法进行排队,是一个循环队列,并且循环执行。
参数:
aSelector:要在主线程执行的方法,该方法不能有返回值,并且只能有一个参数。
arg:要传递的参数,如果无参数,就设为nil
wait:要执行的aSelector方法,是否马上执行。
如果设置为YES:等待当前线程执行完以后,主线程才会执行aSelector方法;
设置为NO:不等待当前线程执行完,就在主线程上执行aSelector方法。
如果,当前线程就是主线程,那么aSelector方法会马上执行。
该方法用途:因为iPhone编程,对UI的修改,只能在主线程上执行。可以用该方法来完成UI的修改。
2.performSelector:withObject:afterDelay:
-(void)performSelector:(SEL)aSelectorwithObject:(id)anArgumentafterDelay:(NSTimeInterval)delay
在当前线程中执行指定的方法,使用默认模式,并指定延迟。
参数:
aSelector:指定的方法。含义同上,不在赘述。
anArgument:同上
delay:指定延迟时间(秒)。
3.performSelector
我们常常用到以下3个方法,分别为:
- (id)performSelector:(SEL)aSelector;
- (id)performSelector:(SEL)aSelector withObject:(id)object;
- (id)performSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2;
首先,定义要调用的方法
-(void)methodNoParam{
NSLog(@"methodNoParam");
}
-(void)methodWithOneParam:(id)paramFirst{
NSLog(@"methodWithOneParam: %@", paramFirst);
}
-(void)methodWithParams:(id)paramFirst andParamSecond:(id) paramSecond{
NSLog(@"methodWithOneParam: %@,%@",paramFirst,paramSecond);
}
其次,进行调用
//没有参数
BOOL isNoParam= [self.selfViewControllerDelegate
respondsToSelector:@selector(methodNoParam)];
if (isNoParam) {
[self.selfViewControllerDelegate
performSelector:@selector(methodNoParam)];
}
//
一个参数
BOOL isOneParam= [self.selfViewControllerDelegate
respondsToSelector:@selector(methodWithOneParam:)];
if (isOneParam) {
[self.selfViewControllerDelegate
performSelector:@selector(methodWithOneParam:)
withObject:@"firsht"];
}
//
二个参数
BOOL isParams= [self.selfViewControllerDelegate
respondsToSelector:@selector(methodWithParams:andParamSecond:)];
if (isParams) {
[self.selfViewControllerDelegate
performSelector:@selector(methodWithParams:andParamSecond:)
withObject:@"first"
withObject:@"second"];
}
转载自:http://blog.sina.com.cn/zhenwawaer
相关文章推荐
- UIButton和UILabel设置圆角
- 为安卓应用申请更大的内存 largeHeap="true"
- 测试UI的快捷入口
- 选择控件 UISegmentedController
- iphone media query
- @RequestParam
- SoapUI入门
- easyui combobox 赋值,取值,默认选中。
- iOS开发之UITableViewCell的官方文档库
- php mysql_query 返回值
- query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)
- iOS开发之窥探UICollectionViewController(一) -- Ready Your CollectionViewController
- android SystemUI 流程分析
- 检测到有潜在危险的 Request.Form 值
- UITextView的属性
- 网易云音乐可爱的tabbar
- UIcolor存储在数组
- UUID生成唯一订单号
- IOS上 关于状态栏的相关设置(UIStatusBar)
- UIStepper 计步器