首先,在学习之前,增加一些动力。经常在面试中,会被问及到这些问题:block的本质是什么?__block的作用是什么?原理是什么?有哪些使用注意点?我们知道block在使用的时候,一般用copy修饰,用copy修饰发生了什么?具体过程是怎样的?带着这些疑问,我们开始今天的学习。block的数据结构长什么样?首先,我们写一个简单的block,以及block的调用:int age = 10;
void            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-29 19:45:52
                            
                                57阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Block 的使用有两种:1.独立Block 。2.内联Block 。
《一》独立Block 使用方式
一、定义一个Block Object,并调用。
1.定义
// 定义一个Block Object,返回值:NSString;别名:intToString;参数:NSUInteger。
NSString* (^intToString)(NSUInteger) = ^(NSUInteger            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-31 22:09:29
                            
                                26阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、Block介绍     1、Block是将函数及其执行上下文封装起来的对象。二、Block的本质     Block是如何将函数及其上下文封装起来的呢?下面通过源码说明。我们写一个Block的定义及调用方法,然后使用clang -rewrite-objc file.m命令查看编译之后的文件内容,来理解Block的封装、调用过程。&nb            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-15 13:49:31
                            
                                190阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、Block本质1.block本质上是一个封装了函数调用以及调用环境的OC对象,它的内部也有个isa指针 2.block底层结构如下struct __main_block_desc_0 {
    size_t reserved; // 升级版本所需区域
    size_t Block_size;   // block占用内存大小
    
    // copy,dispose函数管理自动管            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-04 13:23:34
                            
                                193阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            ## Block拷贝block的属性需要使用copy修饰,如果block一旦没有copy操作就不会在堆上,无法对block生命周期进行控制。使用注意:循环引用的问题。block在修改NSMutableArray,不需要添加__block,因为修改内容也是对数组的使用,只有对对象赋值的时候才需要__block。## __Block当使用__block修饰符时,基本数据类型 a 被转换成了__Bloc            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-31 10:52:56
                            
                                104阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1、delegate与block一般用于1对1的通信交互。delegate需先定义好协议方法,代理对象实现协议方法且需要建立代理关系才可以通信。2、block使用简洁,如果通信事件较多,建议使用delegate。3、Notification主要用于1对多的通信。且对象之间不需要建立关系。使用Notification代码可读性较差。扩展:1、delegate解除两个通信对象的耦合度;            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-03 11:03:59
                            
                                78阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            iOS block 基本用法总结简书地址:http://www.jianshu.com/p/d89e19c08afb一、block定义block定义:是OC中的一种数据类型,可以保存代码,传递参数等,被广泛的运用于iOS开发中。^是block的特有标记block的实现方法的代码实在{}之间block的定义(如下示例代码)://声明形式 返回值(^块名称)(参数类型 参数名,参数类型 参数名,...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-15 19:22:43
                            
                                349阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一 : 科普一分钟什么是block: 个人简单的理解为就是一个存放代码片段的容器,作用就是保存代码.block 苹果官方定义为 对象 可以用数组 和 字典进行操作,写到这同学们可能会明白了,block 说的简单点就是 一个可以存放代码片段的对象,可以进行内存管理,可以作为属性,等普通对象操作. 既然分析明白了就可以做事情了,接下来进入block 的神器世界            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-31 10:53:26
                            
                                292阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            环境:block函数内
先写结论:
在MRC下,我们通常使用__block,而在ARC下我们通常使用__weak, 或者__unsafe_unretaine __block(不安全,不建议使用) 来修饰对象防止循环引用而造成的内存泄露。
注意:
__weak 本身是可以避免循环引用的问题的,但是其会导致外部对象释放了之后,block 内部也访问不到这个对象的问题,我们可以通过在 block            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-16 18:56:00
                            
                                6阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            这篇文章主要的目的是介绍一下block如何使用,希望对大家有所帮助,同时也方便自己记忆。block基础知识:如果你有过类似js,lua等脚本语言的编程经验,那么你应该对闭包这个概念比较熟悉,应该会有一定的体会,我这里就不再赘述这个概念了,IOS中的block就可以实现闭包,使代码结构更巧妙灵活。  一个最简单的block如下:^{
    // block implementation here            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-09 18:29:04
                            
                                60阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            前言只要持之以恒,知识丰富了,终能发现其奥秘。—–杨振宁从事iOS开发时间说长不长,说短也不短了,但是总觉得有些问题理解的不够深刻,比如下面即将说到的Block的使用。谈起block,我能说到的也就一下三方面:block类型的划分block内存的管理block循环引用问题下面就挨个儿说一说,把自己理解的,网上查询的,找师傅问到的理一理block的类型block如何分类?其实blcok的分类主要是根            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-01 06:24:02
                            
                                38阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            前言说起block,想必作为一名iOS开发人员,不可能没有接触过,但是用的多不代表你就真正懂了,本篇的目的也就是巩固一下对于block的学习,以及一些坑点和面试题进行分析,看我们到底有多懂block?一.block的分类结合对于block的分类,我们分别把三种block展示出来,代码如下NSGlobalBlockvoid (^block)(void) = ^{
        NSLog(@"YC            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-25 21:59:21
                            
                                86阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            史上最全讲解:JAVA中的block,package和import,权限修饰符,封装与继承,override与super. 文章目录史上最全讲解:JAVA中的block,package和import,权限修饰符,封装与继承,override与super.block块的分类注意事项package和importgc(garbage collection)package与import权限修饰符priva            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-19 21:29:08
                            
                                56阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # iOS中Block的使用
在iOS开发中,Block是一种非常强大的语法特性,它提供了对代码块的封装,使我们能够灵活地进行回调、事件处理和数据传递。本文将基于Block的基本用法,通过代码示例和详细解释,帮助您更好地理解Block在iOS中的应用。
## 什么是Block?
Block是一个可以在应用程序中定义和执行的自包含代码块。在Objective-C中,Block可以捕获和保存程序            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-08-03 04:53:05
                            
                                31阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # iOS Block作为方法返回
在iOS开发中,Block是一种特殊的对象,可以将一段代码作为一个整体进行封装和传递。Block可以作为方法的参数和返回值,这种灵活性使得我们可以更加方便地处理异步代码和回调函数。本文将详细介绍Block作为方法返回的用法,并提供相应的代码示例。
## 什么是Block?
在Objective-C中,Block是一种特殊的数据类型,用于封装一段代码并将其作            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-10-25 15:02:55
                            
                                55阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # iOS 方法后加 Block 的实现指南
在iOS开发中,使用Block可以让你的代码更加简洁且具有可读性。本文将详细介绍如何在iOS中实现“方法后加Block”的功能。以下是实现整个过程的流程概述。
## 流程步骤
| 步骤 | 描述                               | 代码示例                   |
|------|-----------            
                
         
            
            
            
            # iOS 方法里面加 block 的深度剖析
在 iOS 开发中,Block(代码块)是一种非常强大的功能,它允许我们将一段代码作为参数传递给一个方法,或者将其赋值给变量。在使用方法加 Block 时,可通过回调机制提升用户体验,简化代码结构。本文将详细介绍 Block 的使用方法、应用场景以及相关的代码示例,并通过状态图帮助大家理解。
## 什么是 Block?
Block 是 Obje            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-08-21 07:20:06
                            
                                18阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # iOS Block 重写set方法实现
## 一、整体流程
```mermaid
journey
    title iOS Block 重写set方法实现
    section 开始
        开发者 -> 小白: 说明整体流程
    section 步骤
        小白 -> 开发者: 确认理解
        开发者 -> 开发者: 创建Block对象            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-07-06 06:36:07
                            
                                34阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # iOS开发中的Block方法回调机制
在iOS开发中,Block是一种非常强大的编程结构,它允许开发者将一段代码封装成一个对象,然后在需要的时候执行。Block的使用可以简化异步编程,提高代码的可读性和可维护性。本文将详细介绍Block方法回调机制,并通过代码示例进行说明。
## Block基本概念
Block是Objective-C中的一种匿名函数,它可以接受参数并返回值。Block的            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-07-30 07:55:03
                            
                                34阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            这是该系列的第二篇。在本文中,我想讨论的是:对于 UI 界面的编写工作,到底应该用 xib/storyboard 完成,还是用手写代码来完成?本着 “使用过才有发言权” 原则,我介绍一下我的经历:最早在网易开发 “ 有道云笔记 “ 的时候,我们是使用 xib 来制作界面的。三前年创业编写 “ 粉笔网 “ 的时候,我也是使用 xib 来制作界面的。之后开发 “ 猿题库 “ 的时候,我尝试了一下使用             
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-01 06:23:07
                            
                                43阅读
                            
                                                                             
                 
                
                                
                    