上一篇讲了KVC,那么KVO是Cocoa提供的一种基于KVC的机制,允许一个对象(A)去监听另一个对象(B)的某个属性,当该属性改变时,系统会通知监听的对象(A)请注意,这里的刚描述的通知和IOS系统自带NSNotificationCenter是两回事,后续会写篇NSNotification,就能理解是两码事。先了解KVO的使用,再来逐步分析一、KVO的基本使用流程有三步1添加监听 -
转载
2023-12-20 17:15:32
140阅读
IOS中KVC与KVO的应用解析
一、NSKeyValueCoding(KVC)
1、从一个小例子引入KVC键值编码是Object-C为我们提供的一种对成员变量赋值的方法。在探讨其方法之前,我们先来看一个小例子:首先,创建一个数据模型model类: //.h文件
#import <Foundation/Foundation.h
转载
2024-01-03 21:12:48
51阅读
KVC(Key-value coding)键值编码,单看这个名字可能不太好理解。其实翻译一下就很简单了,就是指iOS的开发中,可以允许开发者通过Key名直接访问对象的属性,或者给对象的属性赋值。而不需要调用明确的存取方法。这样就可以在运行时动态地访问和修改对象的属性。而不是在编译时确定,这也是iOS开发中的黑魔法之一。很多高级的iOS开发技巧都是基于KVC实现的。目前网上关于KVC的文
转载
2023-07-14 13:50:34
108阅读
概述Runtime的内容大概有:动态获取类名、动态获取类的成员变量、动态获取类的属性列表、动态获取类的方法列表、动态获取类所遵循的协议列表、动态添加新的方法、类的实例方法实现的交换、动态属性关联、消息发送与消息转发机制等。当然,本篇博客总结的是运行时常用的功能,并不是所有Runtime的内容。OC的方法调用流程1、编译器会把`[blackDog walk]`转化为`objc_msgSend(bla
转载
2023-12-13 11:44:16
105阅读
一、KVO 是什么?KVO 是 Objective-C 对观察者设计模式的一种实现。KVO 提供一种机制,指定一个被观察对象(例如 A 类),当对象某个属性(例如 A 中的字符串 name)发生更改时,对象会获得通知,并作出相应处理;【且不需要给被观察的对象添加任何额外代码,就能使用 KVO 机制】在 MVC 设计架构下的项目,KVO 机制很适合实现 mode 模型和 view 视图之间的通讯。例
转载
2023-09-05 11:07:46
176阅读
# iOS开发KVC和KVO使用场景
作为一名iOS开发者,你可能会经常遇到需要在对象属性变化时获取通知的场景。这时,KVC(Key-Value Coding)和KVO(Key-Value Observing)就显得尤为重要。下面,我将为你详细讲解KVC和KVO的使用场景和实现步骤。
## 流程图
以下是实现KVC和KVO的流程:
```mermaid
flowchart TD
A
原创
2024-07-23 06:59:22
34阅读
一、KVCKVC全称为key-value coding,键值编码。就是提供了一种机制可以访问一个对象的任意属性。它是通过使用字符串作为关键字而不是使用setter/getter访问器去访问一个对象实例的属性的机制。1.1 实现原理:(问题:KVC是如何访问属性的) (1)如果是取值操作,检查是否存在-,-is,或者-get的对应key的访问器方法,如果有则调用这些方法。 如果是设值操作,检查是
KVCKVC的定义都是对NSObject的扩展来实现的,Objective-C中有个显式的NSKeyValueCoding类别名,所以对于所有继承了NSObject的类型,都能使用KVC(一些纯Swift类和结构体是不支持KVC的,因为没有继承NSObject) KVC使用 KVC在iOS开发中是绝不可少的利器,这种基于运行时的编程方式极大地提高了灵活性,简化了代码,甚至实现很多难以想像的功能,K
转载
2023-07-13 13:52:34
283阅读
RunLoop01基础知识一简介1 什么是RunLoop2 基本作用3 如果没有RunLoop4 如果有了RunLoop5 main函数中的RunLoop6 重要说明二RunLoop对象三获得RunLoop对象1 Foundation2 Core Foundation四RunLoop资料1 苹果官方文档2 CFRunLoop源码 RunLoop01——基础知识一、简介1.1 什么是RunLoop
转载
2024-10-13 19:24:28
34阅读
# iOS Delegate 使用场景详解
在 iOS 开发中,Delegate 模式是一种重要的设计模式,它通过委托的方式让对象间进行通信而不需要强耦合。Delegate 模式广泛用于处理用户交互、数据传输和其他事件。本文将介绍 Delegate 的工作原理、使用场景,并给出相关代码示例。
## Delegate 的工作原理
Delegate 的核心在于一个协议和一个实现该协议的代理类。协
1. cutcut的工作就是“剪”,具体的说就是在文件中负责剪切数据用的。cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段输出。1.基本用法cut [选项参数] filename
说明:默认分隔符是制表符2.选项参数说明选项参数功能-f列号,提取第几列-d分隔符,按照指定分隔符分割列3.案例实操(0)数据准备
[ch@hadoop101 datas]$ touch cut.
一、KVO1、概述KVO的全称是KeyValueObserving,俗称“键值监听",可以用于监听某个对象属性值的改变; KVO是苹果提供的在套事件通知机制。KVO和NSNotificationCenter都是iOS中观察者模式的一种实现,区别是:NSNotificationCenter可以是一对多的关系,而KVO是一对一的;2、KVO的使用使用KVO分为三个步骤:注册KVO监听通过[addObs
转载
2023-09-23 08:51:03
56阅读
好的书籍都是值得反复看的,那好的文章,好的资料也值得我们反复看。我们在不同的阶段来相同的文章或资料或书籍都能有不同的收获,那它就是好文章,好书籍,好资料。关于iOS 中的RunLoop资料非常的少,以下这些资料都是非常好的。
CF框架源码(这是一份很重要的源码,可以看到CF框架的每一次迭代,我们可以下载最新的版本来分析,或与以下文章对比学习。目前最新的是CF-1153.18.tar.gz)
R
转载
2023-09-27 19:18:37
71阅读
用户模板一:用户名小明性别,年龄男,20岁用户状况单身,在校大学生生活爱好喜欢打篮球,唱歌典型场景希望找到一个心仪的可以走到最后的姑娘典型描述交友用户比例? 用户场景一:春天来了,渴望自己的爱情希望在表白墙上通过交友获得自
转载
2023-11-20 13:31:09
176阅读
AppDelegate.h模板 MyViewController; MyAppDelegate,其中NSObject表示它的“类”符合UIApplicationDelegate协议,接着UIApplicationDelegate,此方法为应用程序提供了关于触发的关键事件信息,例如什么时候程序运行完成,什么时候内存不足,什么时候重要变化发生
转载
2023-07-10 22:51:17
86阅读
# 学习 iOS KVC(键值编码)的使用
键值编码(KVC)是 Cocoa 框架中非常重要的一项功能,允许你通过字符串属性名称来访问对象的属性。掌握 KVC 能极大提升你在 Objective-C 或 Swift 开发中的灵活性。本文将详细讲解如何在 iOS 开发中使用 KVC。
## KVC 使用流程
| 步骤 | 描述
原创
2024-09-22 07:28:13
38阅读
在iOS开发中,常驻线程的使用场景非常重要,尤其是对性能和用户体验的考虑。常驻线程可以用来处理长时间运行的任务,保持应用的响应性。在本篇文章中,我们将深入探讨与iOS常驻线程相关的多个方面,包括协议背景、抓包方法、报文结构等。
## 协议背景
在讨论iOS常驻线程之前,我们先了解一下与其相关的协议演变过程。常驻线程的理念与操作系统的发展密切相关。以下是协议发展的时间轴:
- **2007年*
# iOS中的`autoreleasepool`使用场景介绍
在iOS开发中,内存管理是一个非常重要的概念,而`autoreleasepool`是帮助我们管理内存的工具之一。本文将详细介绍`autoreleasepool`的使用场景及步骤,并通过代码示例明确每一步的实现方法。
## 使用场景
`autoreleasepool`主要用于循环中或是处理大量临时对象时,有助于减少内存峰值,避免内存
iOS中的KVO(Key-Value Observing)是一个强大的功能,用于监听对象属性的变化。在复杂的使用场景中,KVO不仅需要确保正确性,还要兼顾性能与可维护性。本文将通过分步指南详细探讨iOS KVO的复杂使用场景,包括环境准备、配置详解、验证测试等。
首先,进行环境准备,我们需要确保软硬件的要求。
## 环境准备
### 软硬件要求
- **操作系统**:macOS 10.14
iOS 中的 delegate 模式是一个非常常用的设计模式,它允许一个对象将某些操作或信息传递给另一个对象,从而创建一种松耦合的关联。在这里,我们将探讨 iOS delegate 的使用场景,并以此为基础进行深入的分析,涵盖版本对比、迁移指南、兼容性处理、实战案例、性能优化和生态扩展等多个方面。
首先,我们来看看最新版本与之前版本的特性差异。
### 版本对比
为了更好地理解 iOS de