/定义blocktypedefint (^MySum) (int,int);void test() {    //定义了一个block,这个block返回值是int类型,接收两个int类型的参数   int (^Sum) (int,int) = ^(int a,int b) {       return a + b;    };
原创 2022-12-09 14:57:46
54阅读
#Objective-C为了解释方便,定义两个类:Person和MyObject,它们都继承自NSObject。他们的关系如下:// Person.h @property (strong, nonatomic, nullable) MyObject *object; 复制代码// MyObjec.h @property (copy, nonatomic) NSString *name; 复制代码#
Block是什么?苹果推荐的类型,效率高,在运行中保存代码。用来封装和保存代码,有点像函数,Block可以在任何时候执行。 Block和函数的相似性:(1)可以保存代码(2)有返回值(3)有形参(4)调用方式一样。 Block 底层实现 定义一个简单的block 我们再给a赋值为20,此时打印出来a 的值还是10 但当我们在第一次给a 赋值时,前面加上__block 的时候,则打印出来
反射机制与动态代理一、反射机制1.反射机制原理2.反射机制的优缺点3.反射机制的作用二、代理模式三、静态代理四、动态代理JDK和Cglib动态代理实现原理JDK动态代理实现原理Cglib动态代理实现原理 一、反射机制1.反射机制原理【反射的解释】      反射机制为什么叫【反射】?一般情况下,我们使用某个类时知道这个类的具体作用,所以我们会直接
// // main.m // Block基本使用:一种数据类型,应用在动画,多线程,集合遍历,网络请求回调。 // 用来保存一段代码,在恰当的时候拿出来调用。功能类似于函数。函数不能嵌套定义,block可以, // 函数指针和block是一样的,相当于代码指针。 #import void printRose(int num) { for (int i = 0; i ...
转载 2017-08-26 21:04:00
73阅读
2评论
# Swift Block 支持 Objective-C 在现代的 iOS 和 macOS 开发中,Swift 和 Objective-C 是两种主流编程语言,开发者在项目中常常需要将这两者结合使用。Swift 引入了块(block),而在 Objective-C 中,Block 的概念也存在。本文将探讨 Swift 中的 block 如何支持 Objective-C,以及如何在这两种语言之间实
原创 8月前
56阅读
# iOS OC Block 修饰 ## 1. 概述 在 iOS 开发中,我们经常会使用 block 这种匿名函数来实现一些回调或者异步操作。然而,有时候我们希望对 block 进行一些修饰,比如修改 block 的参数类型或者返回值类型。这就需要使用到 block 的修饰符。 本文将介绍如何在 iOS Objective-C 中使用 block 修饰符,并详细说明每一步需要做什么。 ##
原创 2023-10-29 06:52:31
51阅读
# Swift 调用 Objective-C Block 的指南 在 iOS 开发中,Objective-C 的 Block 是一种强大且灵活的功能。然而,随着 Swift 的普及,很多开发者希望在 Swift 中优雅地调用 Objective-C 中的 Block。本文将详细介绍如何在 Swift 中调用 Objective-C Block,并附上相应的示例代码,帮助你更好地理解这一过程。
原创 2024-10-12 05:57:17
100阅读
闭包定义闭包(Closure)是自包含的函数代码块,可以在代码中被传递和使用。swift 中的闭包和 c 或 oc 中的 block 以及其他的编程语言的匿名函数类似。在 swift 中闭包的范围比较广泛,不只是 ocblock 这种的,还包含像上节中讲到的全局函数和嵌套函数,全局函数是一种有名字但不会捕获任何只的闭包。嵌套函数是一种有名字可以捕获其封闭函数块中的值。一般闭包表达式类似于 O
转载 2023-08-21 20:13:35
263阅读
 理解Method Swizzling是学习runtime机制的一个很好的机会。在此不多做整理,仅翻译由Mattt Thompson发表于nshipster的Method Swizzling一文。Method Swizzling是改变一个selector的实际实现的技术。通过这一技术,我们可以在运行时通过修改类的分发表中selector对应的函数,来修改方法的实现。例如,我们想跟踪在程序
转载 精选 2015-11-10 14:42:36
610阅读
// // main.m // Block的应用场景 // typedef void (^workBlock)(); #import /* void goToWorkPrefix() { NSLog(@"起床"); NSLog(@"穿衣服"); NSLog(@"洗漱"); NSLog(@"喝早茶"); NSLog(@"驾车去上班"); } void goToWork...
转载 2017-08-26 21:05:00
56阅读
2评论
# iOS OC 中的 Block 传值 在 iOS 开发中,`Block` 是一种强大的工具,通常用于异步处理和回调。Block 是一种封装了代码的对象,类似于其它语言中的闭包(closure)或者 lambda 表达式。在本文中,我们将探讨如何在 Objective-C 中使用 Block 进行数据传值,并通过代码示例加深理解。 ## 什么是 BlockBlock 是一段可以在将来被
原创 8月前
54阅读
第一部分: 理论什么是闭包计算机语言中、“闭包(Closure)是由函数和与其相关的引用环境组合而成的实体.” block就是OC对闭包的实现.(很抽象有木有), Block是iOS4.0+ 和Mac OS X 10.6+ 引进的对C语言的扩展.将“函数、函数指针、闭包”三者对比起来理解,能加深对闭包的理解: 函数: 具有特定功能的代码块; 函数指针: 指向函数的指针; 闭包:除具备“函数和函数指
OC语言Block和协议分类:OC基础2014-10-07 09:24162人阅读评论(0)收藏举报OC Block OC协议OC语言BLOCK和协议
原创 2022-07-26 11:26:27
375阅读
行赋值是没有意义的,所以编译器给出了错误。我们可以通过地址传递来消除以上错误:<code class="cpp">- (<span class="hljs-keyword" style="color: rgb(0, 0, 136);">void</span>)test { <span class="hljs-keyword" style="col
转载 2023-07-21 15:22:22
103阅读
自6月的WWDC大会上由苹果的大神Chris Lattner向我们首次展示swift至今已经大半年时间了,虽然绝大部分软件公司代码里还都见不到一丁点swift的影子,但各路大牛早已纷纷已经对swift进行过各种挖掘了。 我总结下我的看法。主要是给还没仔细研究swift的好奇的OC攻城狮看swfit和OC间的联系1.swift句尾不需要分号,除非你想在一行中写三行代码就加分号隔开。 2.s
第一讲 初始类和对象c语言的超集,允许在oc中使用c语言源代码。编译器兼容c语言程序 具备完善的面向对象特性 包含一个运行时系统 类库丰富  面向对象编程 oop 面向对象语言:c++  java   c# 概念:对象、类、封装、继承、多态等 面向过程:分析解决问题的步骤,实现函数,依次调用&nbs
block 块语法,能够用block去保存一段代码,或者封装一段代码. block 实际是由c语言实现的,运行效率非常高. block 实际借鉴了函数指针的语法. block (^)(參数类型1 參数名1,參数类型2 參数名2...); 返回值类型 (^)(); 1.没有參数,括号也不能省略 2.參
转载 2016-03-26 21:08:00
131阅读
2评论
# iOS开发中的OC Block传参详解 在iOS开发中,使用Objective-C的block(闭包)是一种非常强大且灵活的方式,可以用于传递参数和回调。虽然初入行的小白可能对此感到困惑,但通过系统的学习和实践,我们可以轻松掌握这一概念。 ## 整体流程 在实现OC block传参的过程中,我们可以将其分为以下几个步骤: | 步骤编号 | 操作 |
原创 8月前
34阅读
 block 又称之为“自带变量的匿名函数”,抛开OC语法定义block的形式不谈,其实好多语言都有类似的函数,比如JS的回调函数(其实就是将一个匿名还是作为函数的实参)、swift的闭包等等。。 首先讲一下oc block的实质,通过自身的理解,加以各位大神的剖析文章。block 在编译时期会被编译成结构体,也就是说OCblock底层是使用C语言结构体实现的, 和对象、类的
  • 1
  • 2
  • 3
  • 4
  • 5