new*_*ev1 3 objective-c selector grand-central-dispatch
我正在尝试创建一个泛型方法,它将一个SEL参数作为参数传递给dispatch_async执行,但我无法如何执行传入的SEL.请允许有人帮助我.
// Test.m
-(void) executeMe
{
NSLog(@"Hello");
}
- (void)viewDidLoad
{
[super viewDidLoad];
SEL executeSel = @selector(executeMe);
[_pInst Common_Dispatch: executeSel];
}
// Common.m
-(void) Common_Dispatch:(SEL) aSelector
{
dispatch_async(iDispatchWorkerQueue, ^(void) {
// How to execute aSelector here?
});
}
Run Code Online (Sandbox Code Playgroud)
您还需要在Common_Dispatch方法上使用"target"参数,因为您需要在特定对象上调用选择器.
- (void)viewDidLoad {
[super viewDidLoad];
SEL executeSel = @selector(executeMe);
[_pInst Common_Dispatch:executeSel target:self];
}
- (void)Common_Dispatch:(SEL)aSelector target:(id)target {
dispatch_async(iDispatchWorkerQueue, ^(void) {
[target performSelector:aSelector];
});
}
Run Code Online (Sandbox Code Playgroud)
BTW - 标准命名约定规定方法名称应以小写开头并使用camelCase.你的方法应该是commonDispatch.
| 归档时间: |
|
| 查看次数: |
397 次 |
| 最近记录: |