本文作者主要参考Kazuki Sakamoto,Tomohiko Furumoto著,黎华译《Objective-C高级编程:iOS与OS X多线程和内存管理》一书。在平时工作中遇到不少关于Block相关困惑,比如:Block循环引用问题。于是在反复阅读了该书籍后,决定总结一篇关于Block相关文章。如果还想深入了解Block,作者建议直接阅读上述书籍。由于作者水平有限,文章难免存在纰漏,
前面有提到IO多路复用,解决了阻塞式访问困境。这里再介绍一种解决方法——异步IO1、异步IO实现原理很想硬件上中断。异步IO就是操作系统用软件实现一套中断响应系统,工作方法当前进程注册一个异步IO事件(使用signal注册一个信号SIGIO处理函数),然后当前进程可以正常处理自己事情,当异步事件发生后当前进程会收到一个SIGIO信号从而执行绑定处理函数去处理这个异步事件。涉及
转载 2024-09-03 13:36:51
13阅读
import()异步加载模块在webpack中, 调用import()函数可以将依赖模块进行切割, 打包为非入口点文件, 这是通过Promise+ajax完成. 请求路径相对路径, 对于单页应用来说没有问题. 非入口点文件命名由webpack.config.output.chunkFilename(可以定义路径, 使用[name]和[id]变量)以及Magic Comment(定义[name
常见IO模型在Unix Network Programming一书中提到了若干个常见IO模型,大概有:同步阻塞IO(Blocking IO):即传统IO模型。同步非阻塞IO(Nonblocking IO):此时非阻塞IOSocket应当被设定为NONBLOCK。IO多路复用(IO Multiplexing):也称之为异步阻塞IO,一种Reactor设计模式。常见用法有:select、p
# iOS block都是异步吗 在iOS开发中,block一种非常常见概念,它可以作为一种闭包用来封装一段代码。但是,有些开发者可能会有疑问,iOSblock究竟是同步还是异步?本文将深入探讨这个问题,并通过代码示例来加以说明。 ## 什么block? 在Objective-C和Swift中,block一种可以像函数一样被调用代码块。它可以用来封装一段代码,并在需要
原创 2024-06-03 05:59:06
165阅读
什么同步异步同步和异步针对应用程序和内核交互而言。同步指的是用户进程触发IO操作并等待或者轮询查看IO操作是否就绪。而异步就是指用户进程触发IO操作后便开始干自己事情,当IO操作完成后,用户会得到IO完成通知。举个栗子:同步:自己去银行取钱。去了银行申请业务,等待叫号,处理完回家异步:委托他人代为操作,自己可以干别的,等他人取完钱交给自己。OS操作系统底层支持异步IO操作。什么阻塞和非
Delegate (协议也就是protocol): 1. 声明Delegate: (通常写在一个.h文件中,这样容易import) @protocol xxxDelegate <ParentClass> @optional - (return_type) methodName:(certain_type) args; /
目录1. 回调函数定义2. 为什么要用回调函数3. 怎么用回调函数3.1 怎么使用没有参数回调函数3.2 怎么使用带参数回调函数1. 回调函数定义最近在工作中经常用到回调函数callback,总结一下。先来看看维基百科对callback解释:In computer programming, a callback is any executable code that is passed
参考地址:https://blog.ibireme.com/2015/11/12/smooth_user_interfaces_for_ios/很久以前就看过这篇文章,但是也只是看过就过了,没有去整理思路,最近有时间把一些点整理一下.通读下来可以总结一下对性能优化,在这里也就是提高界面流畅度宗旨只有一句话唯而已:把能异步执行都尽量异步执行.在我这篇里主要记录一下文本异步绘制,先上两个视频,异
在上一篇–select函数,学习总结了一下select方法特性,但也提到了select函数一个缺点:文件描述符个数有限。在linux系统中,默认最大值为1024。poll函数作为另一种I/O复用技术,突破了文件描述符个数限制。一、poll函数介绍相比于select,poll函数和内核交互数据结构也有所改变。其函数原型如下:int poll(struct pollfd *fds, un
block类型block有三种类型:堆block,栈block,全局block。 对于这三种类型block遵循俩个原则: block如果没有使⽤外部变量,或者只使⽤静态变量和全局变量,那⼀定是全局blcok。 block如果使⽤了外部变量,⽽且不是静态变量或全局变量,如果赋值给强引⽤block, 如果赋值给弱引⽤栈blcok。为什么block要⽤copy关键字修饰因为block在创建
# 在 iOS 中实现异步 Block 返回数据 在 iOS 开发中,异步处理很常见需求。使用 Block 可以让你轻松地处理这些异步操作。本文将详细介绍如何在 iOS异步 Block 中返回数据,通过具体步骤和代码示例来帮助你理解。 ## 整体流程 在实现异步 Block 返回数据过程中,通常可以分为以下几个步骤: | 步骤 | 描述 | 代码示例 | |------|---
原创 9月前
34阅读
一、IO分类1、根据通信机制    同步IO:排队,用户线程发送请求后,需要等待IO完成后才能继续执行    异步IO:并发,用户发起IO请求后可继续执行,IO操作完成后会通知用户线程2、根据调用状态     阻塞IO: IO操作需要彻底完成后,才能返回用户空间    非阻塞IO: IO操作调用后,会立即返
1.block结构先看源码://用于描述块对象>标志 flags enum { BLOCK_DEALLOCATING = (0x0001), // runtime BLOCK_REFCOUNT_MASK = (0xfffe), // runtime BLOCK_NEEDS_FREE = (1 << 24), // ru
iOS 开发之Block一:什么BlockBlock作用     UI开发和网络常见功能实现回调,按钮事件处理方法回调方法。    1.     按钮事件 target action 机制。 它是将一个方法传入到一个按钮中    2.     试图表格,它里面有很多事件机制
转载 2023-07-25 10:10:38
52阅读
一、Block是什么?1. 代码段,苹果推荐类型,效率高,在运行中保存代码。用来封装和保存代码,有点像函数,block可以在任何时候执行;2. 代码块本质上和其他变量类似。不同,代码块存储数据一个函数体。使用代码块,你可以像调用其他标准函数一样,传入参数数,并得到返回值。 脱字符(^)语法标记。按照我们熟悉参数语法规约所定义返回值以及块主体(也就是可以执行代码)。&n
转载 2023-09-01 10:52:01
67阅读
iOSBlock基本使用中,我们介绍了一些有关Block基本知识,以及基本用法,在这里,我们将继续围绕Block来讲解,学习有关Block本质问题。首先,在学习之前,增加一些动力。经常在面试中,会被问及到这些问题:block本质是什么?__block作用是什么?原理是什么?有哪些使用注意点?我们知道block在使用时候,一般用copy修饰,用copy修饰发生了什么?具体过程怎样
转载 2023-07-04 13:06:10
64阅读
block对象,它封装了一段代码,这段代码可以在任何时候执行。block可以作为函数参数或者函数返回值,而其本身又可以带输入参数或返回值。它和传统函数指针很类似,但是有区别:blockinline,并且它对局部变量只读Block定义: int (^myBlock) (int a,int b) = ^(int a,int b){ return a+b;
今天整理了一下关于block问题总结,block 说白了就是代码块,在Swift里面叫作闭包,block 只是 Objective-C 对闭包实现,并不是 iOS 独有的概念,在 C++、Java 等语言也有实现闭包,名称不同而已,将同一逻辑代码放在一个块,使代码更简洁紧凑,广受开发者欢迎。但同时 block 也是 iOS比较难理解地方,因此有必要了解下 block 实现原理,知其然,更
转载 2023-09-19 21:37:15
50阅读
欢迎回到 在 iOS 5 中使用 Block 系列教程 – 我们已经有了一些 Storyboard/Interface Builder 方面的实践! 在这个教程第一部分,我们用 iOS 5 中 Storyboard 创建视图并且建立了一个很好看界面, 和你在右边看到那张截图差不多。 在这第二部分也是这个系列最后一部分中,我们要使用 Block了! 我们将会讨论 Block 究竟是什
  • 1
  • 2
  • 3
  • 4
  • 5