在消息发送机制中我们介绍过,OC是动态语言,对象调用方法其实就是对象接收消息,而消息的发送采用“动态绑定”机制,具体会调用哪个方法直到运行时才确定,然后去执行绑定的代码。绑定的过程:以下面代码为例Person *p = Person.new;
[p eat];方法调用时,编译器会底层将之转换成C语言的函数objc_msgSend(p, @selector(eat));,来对p发送消息。消息接收者p
转载
2023-07-20 23:09:15
68阅读
#import "ViewController.h"
/*
Runtime(交换方法):主要想修改系统的方法实现
需求:
比如说有一个项目,已经开发了2年,忽然项目负责人添加一个功能,每次UIImage加载图片,告诉我是否加载成功
当系统提供的控件不能满足我们的需求的时候,我们可以
1:通过继承系统控件,重写系统的方法,来扩充子类的行
转载
2024-03-10 14:25:55
19阅读
背景:今天聊代码规范的问题的时候说了一下尾调用的问题。一:概念:什么是尾调用?尾调用(Tail Call):某个函数的最后一步仅仅只是调用了一个函数(可以是自身,可以是另一个函数)。注意 “仅仅” 两个字。例子:// 尾调用:
- (NSInteger)funcA:(NSInteger)num {
/* Some codes... */
if (num =
转载
2023-06-01 11:47:00
123阅读
前言:本文主要介绍ios中方法交换的各种方式具体使用,帮助新手快速入门并且上手。(毕竟我自己学的时候,找资料挺辛苦的,网上的资料大部分都是互相cv ?)本文主要包括以下几个部分:概念分类实现方法交换类之间的方法交换(内部交换)类之间的方法交换(外部交换)C语言实现的方法交换方法交换实现全局点击拦截概念方法交换:要理解方法交换的话,要了解一些概念:Objective-C 是一个动态语言,它有runt
转载
2023-08-24 00:19:10
137阅读
方法的所属性方法是由传统的函数发展而来的。 就行为来看,函数与方法具有极高相似性,它们都可以接受定义形参,调用时都可以传入实参。Objective-C调用函数时的传参机制与调用方法的传参机制完全相同,都是值传递,都是传入参数的副本。方法与函数的显著不同: 在结构化的编程语言里,函数是一等公民,整个软件由一个个函数组成;在面向对象的编程语言里类才是一等公民。因此,在Objective-C语言里,方法
转载
2023-07-13 15:27:14
87阅读
提到 Object-C 中的 Runtime,你可能一下就想到了 iOS 的黑魔法 Method Swizzling。毕竟,这个黑魔法可以帮助我们在运行时进行方法交换,或者在原方法执行之前插入自定义方法,以保证在业务面向对象编程方式不被改变的情况下,进行切面功能的开发。但是,运行时进行方法交换同时也会带来一定的风险。所以,今天我就来和你详细聊聊 Runtime Method Swizzling 的
转载
2023-09-29 21:47:48
61阅读
iPhone手机销售火爆同时让 iOS 的应用开发炙手可热,本文介绍10款对 iOS 开发人员非常有用的工具。1. iOS Dev Center当然这得排第一个,这是 iOS 开发的帮助文档中心,所以你需要的关于 iOS 开发的文章、指南、示例和手册、论坛以及 SDK 都在这里可以找到。
2. FTP On The GoFTP 传输工具,可管理文件、文件
转载
2023-05-30 09:18:15
61阅读
# iOS NSLock 本质解析
在 iOS 开发中,尤其是在多线程编程中,数据的同步和资源的安全访问是非常重要的。`NSLock` 是一种常用的线程同步机制,帮助开发者在多线程环境中保护共享资源,避免线程之间的竞争条件。本文将深入探讨 `NSLock` 的本质,以及如何在实际开发中使用它。
## 什么是 NSLock
`NSLock` 是 Objective-C 中提供的一种锁机制,用于
iOS runtime是苹果操作系统iOS上的一个重要组成部分,它是一个动态库,主要负责处理Objective-C的消息传递、方法调用、动态类型创建等功能。在iOS开发中,我们经常会听到关于runtime的概念,它的本质是什么呢?
### iOS runtime的本质
iOS runtime本质上是一个用C语言编写的库,它提供了一套API,允许我们在运行时操作类和对象。通过runtime,我们
原创
2024-04-07 05:47:00
31阅读
iOS死锁本质的深入分析与解决方案
在现代iOS应用中,开发者时常需要处理多线程环境。在这其中,死锁问题是一个常见却又棘手的问题。一旦发生死锁,应用将无法继续执行,极大影响用户体验与业务运营的稳定性。为深入了解这一问题,我们将从多个方面进行分析。
### 问题背景
随着应用复杂度的增加,iOS中的多线程处理逐渐成为必然。当多个线程同时获取相同的资源并形成环依赖时,死锁便会悄然而至。这种情况不
VXLAN技术的本质方法
VXLAN(Virtual Extensible LAN)是一种用于虚拟化数据中心网络的技术,并且已经被广泛应用于华为的数据中心解决方案中。本文将介绍VXLAN技术的本质方法以及它在数据中心网络中的应用。
VXLAN的本质方法是通过在现有的IP网络上实现虚拟二层网络,从而满足大规模多租户数据中心网络的需求。传统的数据中心网络已经不能满足虚拟化应用的要求,原因主要有两个
原创
2024-01-30 16:46:20
75阅读
## Swift 方法调用的本质
作为一名经验丰富的开发者,我将向你介绍一下 Swift 方法调用的本质。在学习过程中,我将使用表格展示整个流程,并为每个步骤提供相应的代码和注释来解释其含义。
### 整体流程
下面是 Swift 方法调用的整体流程:
| 步骤 | 描述 |
| --- | --- |
| 1 | 编写一个类或结构体,并定义其中的方法 |
| 2 | 创建一个实例对象 |
原创
2023-11-15 13:23:48
43阅读
# 实现“JAVA 方法引用的本质”
## 简介
在Java中,方法引用是一种更简洁、更易读的代码风格,可以用来简化Lambda表达式的使用。对于刚入行的小白来说,了解方法引用的本质是很重要的,下面我将为你详细讲解。
### 流程图
```mermaid
flowchart TD
A[理解方法引用的概念] --> B[实现方法引用的本质]
```
### 甘特图
```mermaid
原创
2024-02-29 07:35:21
27阅读
Git is a content-addressable(内容寻址) file system. Core part is key-value data store. Afte
原创
2021-03-12 11:26:37
83阅读
前两天,公司一个新来的实习生问我一个问题,什么是类,这个问题看似很好笑,但是要答全也确实不那么简单!!!回去翻看资料,查看以往的笔记,那么就说说我自己对类的本质看法!在OOP的设计的模式下,我们说万物皆对象,OC是一种面向对象的弱语法,但其实也是所有用到的东西也都是对象,包括成员变量!那么问题来了,对象从哪里来,这就要说到类!类的本质:类的本质其实也是一个对象,叫类对象。那么我们就来看看类和对象到
转载
2023-08-21 14:06:00
46阅读
一: block的原理是怎样的?本质是什么?block本质上也是一个OC对象,因为它的内部也有个isa指针block是封装了函数调用以及函数调用环境的OC对象接下来我们将通过底层源码来论证上诉两点.
首先我们写一个简单的block,通过clang编译器编译成C++代码,查看一下block的底层机构: int main(int argc, const char * argv[]
转载
2024-06-21 19:50:31
28阅读
JUC并发编程一:什么是JUC+进程/线程(Java)1、什么是JUCJUC的意思就是java并发编程工具包,
原创
2022-10-20 10:13:38
71阅读
Java8 中引入方法引用新特性,用于简化应用对象方法的调用, 方法引用是用来直接访问类或者实例的已经存在的方法或者构造方法。 方法引用提供了一种引用而不执行方法的方式,它需要由兼容的函数式接口构成的目标类型上下文。计算时,方法引用会创建函数式接口的一个实例。 当 Lambda 表达式中只是执行一个方法调用时,不用 Lambda 表达式,直接通过方法引用的形式可读性更高一些。方法引用是一种更简洁易
转载
2023-10-26 16:00:45
36阅读
1 什么是设计模式? 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。简单点说,设计模式就是对问题行之有效的解决方式,是一种思想。2 什么是模板方法模式? 模板方法模式是一种基于继承的代码复用技术,它是一种类行为型模式。模板方法模式是结构最简单的行为型设计模式,在其结构中只存在父类与子类之间的继承关系。 通过使用模板方法模式,可以将
转载
2024-01-11 13:37:34
29阅读
iOS开发中的Html解析方法本文作者为大家介绍了在iOS开发中的Html解析方法,并同时提供了Demo代码的下载链接,Demo 解析了某个网站(具体可在代码中查看)的html网页,提取了图片以及标题。AD:WOT2015 互联网运维与开发者大会 热销抢票初次解析html,使用是网上的第三方类;我使...
原创
2022-05-15 21:39:10
1161阅读