美文网首页
ios 函数嵌套名称不同的内置函数

ios 函数嵌套名称不同的内置函数

作者: leejobs | 来源:发表于2020-12-17 12:35 被阅读0次

    有时候我们在使用函数中,函数内部的很多步骤是重复书写的,同一个函数的某些环节的调用不同函数时,可以直接传(SEL)作为参数,但当某个函数的参数是block时,可以使用下面的定义

    sel:待执行方法

    arguments:函数对应参数

    - (void)invocationSEL:(SEL)sel arguments:(NSArray*)arguments{

        NSMethodSignature *signature = [[self class] instanceMethodSignatureForSelector:sel];

        NSInvocation*invocation  = [NSInvocationinvocationWithMethodSignature:signature];

        [invocationsetTarget:self];

        [invocationsetSelector:sel];

        for(inti =0; i< arguments.count; i++) {

            idargument = [argumentswim_objAtIndex:i];

            [invocationsetArgument:&argumentatIndex:1+i];

        }

        [invocationinvoke];

    }

    eg:

    typedef void(^handlerBlock)(NSArray*__nullable array,NSError*__nullable error);

    handlerBlock handler = ^(NSArray*__nullable array,NSError*__nullable error){

                        };

    [self invocationSEL:sel arguments:@[array,handler]];

    相关文章

      网友评论

          本文标题:ios 函数嵌套名称不同的内置函数

          本文链接:https://www.haomeiwen.com/subject/flqzgktx.html