2 hellolmk123 hellolmk123 于 2014.05.13 14:08 提问

ios block作为参数时,自身的参数是谁传递的

NSArray *array = [NSArray arrayWithObjects: @"A", @"B", @"C", @"A", @"B", @"Z",@"G", @"are", @"Q", nil];
NSSet *filterSet = [NSSet setWithObjects: @"A", @"Z", @"Q", nil];
BOOL (^test)(id obj, NSUInteger idx, BOOL *stop);

test = ^ (id obj, NSUInteger idx, BOOL *stop) {

    if (idx < 5) {

        if ([filterSet containsObject: obj]) {

            return YES;

        }


    }
    return NO;
};

当block函数作为参数时,自身的参数是谁给它传递的呢?例如上面代码中的test = ^ (id obj, NSUInteger idx, BOOL *stop),obj,idx,stop这个三个参数谁谁个他传递的呢?

5个回答

mengguihua110
mengguihua110   2015.12.28 22:56

这哪里是block 做为参数啊,这是带参数的block

zhaoyaming_123
zhaoyaming_123   2016.06.08 06:06

这哪block作为参数啊,这是带参数的block

zhouleizhao
zhouleizhao   2014.06.04 16:49

在什么地方使用的时候,传递就可以了啊!
BOOL isContain = test(@"A",2,NO);

mengguihua110
mengguihua110   2015.12.28 22:56

这哪里是block 做为参数啊,这是带参数的block

mengguihua110
mengguihua110   2015.12.28 22:55

这哪里是block 做为参数啊,这是带参数的block

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
ios 多个参数的block
多个参数的block firstPageViewController.m 1. 在第一个页面初始化页面时申明block函数 _pickerViewController = [[TFPickerViewController alloc]init]; [_pickerViewController loadTFBlock:^(NSString *parameter1, NSString *par
iOS中block作为一个函数的参数
我们首先设想有如下的一个头文件: @interface ViewController : UIViewController {     AAA *aaa; } 假设在这个ViewController的viewDidLoad函数内有如下一段代码 [aaa withBlock:^(NSString* error_code, NSError* error)  {
编写带有block参数的函数
目前在编写IOS程序的过程中,对于block的使用比较多。一般都是使用iOS写好的API自带的block,但是自己也想写一些block作为参数的函数。如果是在同一个类中,可以异步编写一些代码。如果是在不同的类中,则可以这些数据的传递。但是当把block作为函数参数的时候,如何编写这样的函数一直不知所云,这几天有空就研究了一下,下面通过几个例子来说明一下。不带参数的block例如 想在某个方法结束后调
最简单的IOS Block与协议 block作为函数参数的使用
1. block是1个数据类型.能不能不能作为函数的参数呢? 当然是可以的.        2. 如何为函数定义block类型的参数?       a. 就是在小括弧中声明1个指定格式的block变量就可以了.       b. 可以使用typedef简化定义,这样看起来就不会晕了.        3. 如何调用带block参数的函数呢?         a. 如果要调用的函数
Objective-c - block作为函数的参数
/* Objective-c - block作为函数的参数       1> block做为一种数据类型,可以做为方法或者函数的参数.       2> 将block做为函数的参数,如同其他数据类型一样,直接将block变量写在函数或者方法的小括弧中即可.                  例1:             void tes
block作为属性,作为参数,作为返回值各种情况演示
// // ViewController.m // block作为属性,作为参数各种情况演示 // // Created by xiaobing on 15/9/12. // Copyright (c) 2015年 xiaobing. All rights reserved. //#import "ViewController.h" #pragma mark - blcok作为属性 @int
iOS Block的基本使用以及Block传值
block为我们提供了一个非常便捷的方法去实现各种传值以及回调 合理的使用block可以减少代码量以及更加优雅的实现功能 现做个小整理如下: #pragma mark About Block //block的原型: NSString *(^myBlock)(int); //上面的代码声明了一个block(^)原型,名字叫做myBlock,包含一个int型的参
Block作为参数
编写带有block参数的函数 block作为参数传递
iOS block (block中修改外部值并作为返回值)
1.废话少说,上代码:- (CGFloat)getMaxY { //在此设置要改的变量 __block NSString *maxColumn = @"0"; [self.maxYDict enumerateKeysAndObjectsUsingBlock:^(NSString *column, NSNumber *maxY, BOOL *stop) { if
iOS方法作为属性传递
iOS中方法作为属性或者是参数进行传递,下边我是以代理方法为例。 .h中的代码让代理方法作为一个属性 @property(nonatomic,assign)SEL delegateSelect; .m中的代码让delegate调用这个传过来的代理方法  传值用withObject:一个对象传递