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

问题描述

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这个三个参数谁谁个他传递的呢?

解决方案

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

解决方案二:

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

解决方案三:

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

解决方案四:

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

时间: 2024-09-17 21:21:28

ios block作为参数时,自身的参数是谁传递的的相关文章

java-JAVA在执行程序时如何使用参数指定栈的大小

问题描述 JAVA在执行程序时如何使用参数指定栈的大小 在看<挑战程序设计竞赛>这本书上看见这么一句话,想知道怎么可以办到? 解决方案 jvm 参数修改http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html 解决方案二: 具体参数的含义参见"无法显示此用户"的链接. 这里说下怎么修改 打开eclipse-窗口-首选项-Java-已安装的JRE(对在当前开发环境中运行的java程序皆生效,也就是在ecli

修改参数时scope参数值的作用

修改参数 可以通过alter system或者导入导出来更改spfile的内容 从oracle9i开始,alter system命令增加了一个新的选项scope,scope参数有3个可选值:memory,spfile和both memory:只改变当前实例运行,重新启动数据库后失效 spfile:只改变spfile的设置,不改变当前实例运行,重新启动数据库后生效 both:同时改变实例及spfile,当前更改立即生效,重新启动数据库后仍然有效. 针对rac环境,alter system还可以指定

MYSQL客户机程序4—在运行时获取连接参数

    6.5 客户机程序4-在运行时获取连接参数     现在我们有了容易修改的防止出现错误的连接代码,我们要了解一些如何做某些比使用NULL 连接参数更灵巧的事情,如在运行时允许用户指定一些值.客户机程序3由于固定连接参数方面的缺陷,要想更改那些值中的任何一个,都必须编辑源文件并重新编译.这十分不方便,特别是想使程序用于其他人时.在运行时指定连接参数的一个通用的方法是使用命令行选项.MySQL分发包中的程序接受两种形式的连接参数,如表6 - 1所示.    与标准的MySQL客户机程序一致,

[Remoting FAQ]传递Remoting参数时遇到的两种常见错误

[Remoting FAQ] 传递Remoting参数时遇到的两种常见错误 Version Date Creator Description 1.0.0.1 2006-4-25 郑昀@Ultrapower 草稿   继续阅读之前,我们假设您熟悉以下知识: n         Remoting [现象1] 我们先来描述一个简单的错误.当你激活远端Remoting Objects时,却得到了这样的错误提示: 提示信息 Type 'Common.BTRequest' in Assembly 'Comm

应用-微信企业号解密suite_ticket时用什么参数

问题描述 微信企业号解密suite_ticket时用什么参数 官网的代码中解密是需要传参数,我要对推送过来的suite_ticket进行解密,需要传的是该应用套件里的套件ID,套件token,套件Aeskey还是企业号的值?

c#-C#调用C DLL(char *传出参数)时,报错参数不匹配

问题描述 C#调用C DLL(char *传出参数)时,报错参数不匹配 public class LLht { //手持机下载上传 [DllImport(""llht.dll"" CallingConvention = CallingConvention.StdCall CharSet = CharSet.Ansi SetLastError = true ExactSpelling = true)] public static extern int llht_dow

xmn-运行Java程序时,JVM参数没有生效,请高手帮忙看看。

问题描述 运行Java程序时,JVM参数没有生效,请高手帮忙看看. 小弟在学习GC的过程中,遇到JVM参数未生效的问题,一时不知道怎么解决,请路过大神帮帮忙指点指点,小弟谢过! 运行环境为:Win7 64bit, 4 core. 1,程序如下 public class PSGCDirectOldDemo { /** * @para args * @throws InterruptedException */ public static void main(String[] args) throw

redirect-spring mvc 重定向,手动拼接参数时,参数中带有中文为什么会出现丢字的现象?

问题描述 spring mvc 重定向,手动拼接参数时,参数中带有中文为什么会出现丢字的现象? spring mvc 重定向,手动拼接参数时,参数中带有中文为什么会出现丢字的现象?如:redirect:/search.htm?query=蘑菇音乐节,跳转的时候发现蘑菇音这三个字丢了,求大神

c++-比较两个相等的函数里,当给两个不相等参数时,系统为什么会自动返回x的值呢??

问题描述 比较两个相等的函数里,当给两个不相等参数时,系统为什么会自动返回x的值呢?? int fun(int aint b){ if(a == b) { return a; }} void main(){ int x = 20y =10; int z = fun(xy); cout<<z<<endl;}fun函数里,没有给出,当两个参数不相等的返回情况,那么系统为什么会自动返回x的值呢??请各位大神帮帮我 解决方案 由于不相等时没有给定返回值,所以将返回栈顶值如果此时栈是空的,则