block 方法参数中带有block 如何生成 如何使用


第一种

typedef void(^SDWebImageDownloaderProgressBlock)(NSInteger receivedSize, NSInteger expectedSize);
@interface ssyTest : NSObject
{
    SDWebImageDownloaderProgressBlock ssyblock;
}
- (void)testssy:(NSString *)str block:(SDWebImageDownloaderProgressBlock)ssy;
#import "ssyTest.h"

@implementation ssyTest
- (void)testssy:(NSString *)str block:(SDWebImageDownloaderProgressBlock)ssy
{
    ssyblock = ssy;
    [self performSelector:@selector(jjj) withObject:nil afterDelay:5];
}

- (void)jjj
{
    ssyblock(1,2);
}
    ssyTest *ssy = [[ssyTest alloc] init];
    [ssy testssy:@"3" block:^(NSInteger s1,NSInteger s2){

        NSLog(@"%d   %d",s1,s2);
    }];

第2中

- (void)testCallback:(void (^)(int ssy,NSString *str))callback;
- (void)testCallback:(void (^)(int ssy,NSString *str))callback
{
    callback(5,@"ssy");
}
  [ssy testCallback:^(int index,NSString *str){
        NSLog(@"%d   %@",index,str);
    }];
时间: 2024-11-05 18:56:13

block 方法参数中带有block 如何生成 如何使用的相关文章

辨析Java方法参数中的值传递和引用传递

小方法大门道 小瓜瓜作为一个Java初学者,今天跟我说她想通过一个Java方法,将外部变量通过参数传递到方法中去,进行逻辑处理,方法执行完毕之后,再对修改过的变量进行判断处理,代码如下所示. public class MethodParamsPassValue { public static void doErrorHandle() { boolean a = false; int b = 5; passBaseValue(a, b); if (a == true || b == 10) { S

参数中带有“&”符号问题

今天写程序时遇到一个问题: /login.do?service=9861.htm?id=117&pageNo=1 这个链接中有两个问号,以至于后台取参数 service的值时把 &pageNo=1 当成 login.do的第二个参数,而不是 service的参数. 解决方法: 前台javascript: 将service的参数进行编码:encodeURIComponent(“9861.htm?id=117&pageNo=1”) 后台Java: 解码:String url = URL

url参数中带有中文时出现字符乱码

url中不支持中文传输,在传输之前需要URI编码,在客户端编码后,传输到服务端,需要进行解码,编码和解码的格式需要统一. 浏览器和服务器一般都有默认的编码方式,在传递中文时自动编码和解码. 例如,浏览器的默认编码方式是UTF-8,服务器端的默认编码方式是GB2312,当参数传到服务端时,出现乱码. 在web开发时需要统一编码方式,避免出现中文乱码问题. 客户端可通过js编码,js编码格式只能是utf-8,服务器端可设置默认解码格式.  对于当服务端使用tomcat容器时,需要在Server.xm

使用@RequestBody将请求体映射到Action方法参数中

1 @PostMapping("/user") 2 public User create(@RequestBody User user){ 3 System.out.println(user.toString()); 4 user.setId(5l); 5 return user; 6 } 1 @Test 2 public void whenCreateSuccess() throws Exception { 3 String content = "{\"usern

Scala正则和抽取器:解析方法参数

在<正则表达式基础知识>中概括了正则表达式的基础知识, 本文讲解如何使用正则表达式解析方法参数,从而可以根据 DAO 自动生成 Service. 在做 Java 项目时,常常要根据 DAO 生成 Service , 而 Service 有时是简单的调用 DAO 方法.比如根据 public CreativeDO findByCreativeId(Long creativeId)  生成如下代码: public CreativeDO findByCreativeId(Long creativeI

Java的方法参数-想想挺有趣的问题

一直认为Java的方法参数都是传递值,调用后对本身不影响. Java不存在C/C++中的指针,在快速排序中,传入的数组,却发生了值的改变.由此引发的思考: //为方便举例,以下为部分快速排序伪代码 传入的数组,在递归中,数组值被操作. void quickSort(int s[], int l, int r){ if (l < r){ quickSort(s, l, i - 1); quickSort(s, i + 1, r); } } 结论:Java方法参数中传递的是值,在参数是引用类型(如数

block使用小结、在arc中使用block、如何防止循环引用

引言 使用block已经有一段时间了,感觉自己了解的还行,但是几天前看到CocoaChina上一个关于block的小测试主题 : [小测试]你真的知道blocks在Objective-C中是怎么工作的吗?,发现竟然做错了几道, 才知道自己想当然的理解是错误的,所以抽时间学习了下,并且通过一些测试代码进行测试,产生这篇博客. Block简介(copy一段) Block作为C语言的扩展,并不是高新技术,和其他语言的闭包或lambda表达式是一回事.需要注意的是由于Objective-C在iOS中不支

Objective-C中的Block(闭包)

学习OC有接触到一个新词Block(个人感觉又是一个牛气冲天的词),但不是新的概念,不是新的东西.学过Javascript的小伙伴对闭包应该不陌生吧~学过PHP的应该也不陌生,在PHP5.3版本以后也支持闭包, 也就是OC中所提到的Block. 到底什么是闭包或者block呢?用大白话说就是匿名函数,也就是在函数中可以包含这函数.就是在函数中可以定义匿名函数然后在函数中调用.学习OC中的block之前也小担心一下,Block在OC中属于高级的部分,心里有又有个疑问:学起来难不难?看过Block的

如何在iOS中使用Block

如何在iOS中使用Block Block可以帮助我们组织独立的代码段,并提高复用性和可读性.iOS4在UIKit中引入了该特征.超过100个的Apple API都使用了Block,所以这是一个我们必须开始熟悉的知识. Block是什么样的? 你可以使用^操作符来声明一个Block变量,它表示一个Block的开始. int num1 = 7; int(^aBlock)(int) = ^)int num2) { return num1+nunm2; }; 在如上代码中我们将Block声明为一个变量,