iOS Block的简单使用

目录:本文将分三个部分讲解block块的基本用法,由于本人水平有限,不足之处还望指正,谢谢!

一、block块的基本用法:

相信大家都很熟悉了,下面直接上代码:

    //1,block初探,无参数,无返回值
    void (^MyBlock)(void) = ^(void){

        NSLog(@"2,打印出来了,我就是block,无参数,无返回值");
    };
    NSLog(@"1");
    MyBlock();

    //2,有参数,无返回值
    void (^MyblockTwo)(int a) = ^(int a){

        NSLog(@"@ = %d我就是block,有参数,无返回值",a);
    };

    MyblockTwo(100);

    //3,有参数,有返回值
    int (^MyBlockThree)(int, int) = ^int(int a,int b){

        NSLog(@"%d我就是block,有参数,有返回值",a + b);
        return a + b;
    };

    MyBlockThree(12,56);

以上三个是block最基本的用法,也是局部的block块,就不多说了,这主要争对初学者,主意block回调的时机。

二、block块的进阶用法:

我的代码是在实现文件中

声明:

- (void)getNameBlock:(void(^)(NSString *string))myBlockName;

实现:

- (void)getNameBlock:(void (^)(NSString *))myBlockName{

NSLog(@"我先走一步了哈");

[self laterGoBlock:myBlockName];

}

调用:

[self getNameBlock:^(NSString *string) {

NSLog(@"这次我小马哥真走了哈,%@",string);

}];

看这时候我又定义了一个block,这个block是全局的,在.h文件中定义如下:

声明:

- (void)laterGoBlock:(void(^)(NSString *))myBlockJC;

实现:

- (void)laterGoBlock:(void(^)(NSString *))myBlockJC{

myBlockJC(@"我是小马哥,知道我的目的了吧");

}

看我的目的是在这个方法中实现block的回调,如果这你理解了,那么不同界面用block传值就很简单了。未完待续

时间: 2025-02-01 11:45:13

iOS Block的简单使用的相关文章

iOS Block的简单使用以及__block 和static修饰变量

简单的代码总结,不足之处多多指教. //简单的使用 -(void)blockOne{ int number=23; int(^BlockOne)(int) = ^(int num2) { return number*num2; }; NSLog(@"输出的block %d",BlockOne(2)); } -(void)blockTwo{ int(^block)(int,int) = ^(int stra,int str2) { return stra + str2; }; NSLog

iOS block从零开始

iOS block从零开始 在iOS4.0之后,block横空出世,它本身封装了一段代码并将这段代码当做变量,通过block()的方式进行回调. block的结构 先来一段简单的代码看看: void (^myBlock)(int a) = ^(int a){ NSLog(@"%zd",a); }; NSLog(@"旭宝爱吃鱼"); myBlock(999); 输出结果: 2016-05-03 11:27:18.571 block[5340:706252] 旭宝爱吃鱼

ios状态栏调整 简单动画的知识点

首先状态栏式view的属性,所以在viewController中直接重写: /** 修改状态栏 */ - (UIStatusBarStyle)preferredStatusBarStyle { // 修改状态栏的颜色(白色) return UIStatusBarStyleLightContent; } // 这种返回值没有*的说明不是对象,那么不是枚举就是结构体,大多数情况是枚举,所以取值也比较简单,一般是返回值后边加上状态: 在UIKit学习中常用的块动画: // 块动画 animateWit

写给喜欢用Block的朋友(ios Block)

作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/38090205 转载请注明出处 如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号fengsh998来支持我,谢谢! 本文不讲block如何声明及使用,只讲block在使用过程中暂时遇到及带来的隐性危险. 主要基于两点进行演示: 1.block 的循环引用(retain cycle) 2.去除block产生的告警时,需注意问题. 有一次,朋友问我当一个对象中的b

iOS block并发

iOS block并发 2012-06-13 09:31 1351人阅读 评论(0) 收藏 举报 iosuiviewnetwork任务threadimage 这篇文章转自 http://anxonli.iteye.com/blog/1097777,集中与iOS的多核编程和内存管理,大家完全可以使用苹果的多核编程框架来写出更加responsive的应用. 多核运算 在iOS中concurrency编程的框架就是GCD(Grand Central Dispatch), GCD的使用非常简单.它把任务

ios Block学习

ios block 回调传值,回调事件, 直接上代码 在firstVC里面的tableView 点击方法 ,里面点击跳到另一个nextVC,然后返回后的firstVC后回调值 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ NextViewController *next=[[NextViewController alloc]init]; __block Nex

IOS block 教程<转>

http://pernghh.pixnet.net/blog/trackback/eac87d412e/33563409 本文来自台湾的某开发人员的博客,被墙,感觉讲的比较易懂,所以引过来.文字简体化了,原来是繁体,变数=变量,这个注意一下. 本章学习目标: 1. 了解何谓block. 2. 了解block的使用方法. Block 是iOS在4.0之后新增的程式语法,严格来说block的概念并不算是基础程式设计的范围,对初学者来说也不是很容易了解,但是在iOS SDK 4.0之后,block几乎

iOS Block理解

以前看到Block觉得也没什么,不就是类似函数的东西,这东西在C#里就是委托,在Java里就是块,有什么稀奇的.但看到一点进阶的内容后,发现这个东西确实有用. 所以做下总结. 一.块的基本用法 块的语法构成: ^[返回值类型](形参1,形参2,...) { //执行体 } 在JS里,函数是可以做为变量的,OC的块也用变量接收,变量的声明语法: //可以把形参名省略,只保留类型 返回值类型 (^块名) (形参1,形参2,...); 再来看几个例子就懂基本怎么用了: int main(int arg

iOS设计模式 - (3)简单工厂模式

iOS设计模式 - (3)简单工厂模式           by Colin丶 转载请注明出处:              http://blog.csdn.net/hitwhylz/article/details/40381721 一.简述 简单工厂模式(FACTORY),通过面向对象的封装,继承和多态来降低程序的耦合度.将一个具体类的实例化交给一个静态工厂方法来执行. 该模式中的角色包括: 工厂类(Simple Factory): 只包含了创建具体类的静态方法. 抽象产品(Product):