iOS开发知识原理
文章平均质量分 80
Zhang_信者的路
梦想是什么?梦想就是一种让你感到坚持就是幸福的东西。
展开
-
KVC的理解、与runtime结合应用及其底层原理
一、KVC的概念理解及常用方法概念KVC(Key-Value Coding)顾名思义,就是键值编码的意思。 在iOS中,KVC就是通过使用属性的名称间接性来访问属性的方法,通俗一点的理解就是可以通过对象属性名称(Key)直接给属性值(Value)编码(Coding)“编码”可以理解为“赋值”。这个方法可以不通过getter/setter方法来访问对象的属性。因为一个类的成员变量如果没有提供gett原创 2017-06-29 15:52:58 · 900 阅读 · 0 评论 -
Category底层实现源码剖析
一、Category概念?Category是Objective-C 2.0之后添加的语言特性,分类、类别其实都是指的Category。Category的主要作用是为已经存在的类添加方法。可以把类的实现分开在几个不同的文件里面,这样做有几个好处,如下1.减少单个文件的体积2.把不同的功能组织到不同的category里3.由多个开发者共同完成一个类4.按需加载想要的category5....原创 2018-09-29 10:00:26 · 329 阅读 · 0 评论 -
KVO窥探其底层实现
概念KVO的全称是Key-Value- Observing,俗称“键值监听”,可以用于监听某个对象属性值的改变。本质利用RuntimeAPI动态生成一个子类,并且让改instance对象的isa指向这个全新的子类当修改对象的属性时,会调用Foundation的_NSSetXXXValueAndNotify函数 1.先调用willChangeValueForKey: 2.调用...原创 2018-08-27 11:49:05 · 423 阅读 · 0 评论 -
iOS 成员变量,实例变量,属性变量的区别,联系
这几个概念往往知道了 过不了多久又忘 可能是因为平时并没有特别需要区分的地方 一般都用属性 某些时候可能会用到成员变量 ; 因为平时在写代码中并不需要过于区分 这可能是经常记住理解后又忘的原因吧; 但是很多文章 里面又提及到了这些概念 所以不得不再次温故而知新。 在ios第一版中: 我们为输出口同时声明了属性和底层实例变量,那时,属性是oc语言的一个新的机制,转载 2018-01-15 10:01:09 · 386 阅读 · 0 评论 -
Objective-C Runtime 运行时之三:方法与消息
前言前面我们讨论了Runtime中对类和对象的处理,及对成员变量与属性的处理。这一章,我们就要开始讨论Runtime中最有意思的一部分:消息处理机制。我们将详细讨论消息的发送及消息的转发。不过在讨论消息之前,我们先来了解一下与方法相关的一些内容。基础数据类型SELSEL又叫选择器,是表示一个方法的selector的指针,其定义如下:typedef struct objc_selector *SEL;转载 2017-08-04 17:12:13 · 386 阅读 · 0 评论 -
Objective-C Runtime 运行时之二:成员变量与属性
前言在前面一篇文章中,我们介绍了Runtime中与类和对象相关的内容,从这章开始,我们将讨论类实现细节相关的内容,主要包括类中成员变量,属性,方法,协议与分类的实现。本章的主要内容将聚集在Runtime对成员变量与属性的处理。在讨论之前,我们先介绍一个重要的概念:类型编码。类型编码(Type Encoding)作为对Runtime的补充,编译器将每个方法的返回值和参数类型编码为一个字符串,并将其与方转载 2017-08-03 16:45:20 · 605 阅读 · 0 评论 -
Objective-C Runtime 运行时之一:类与对象
本文章转载自:南峰子的技术博客 Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一个方法的实现等。这种特性意味着Objective-C不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。对于Objective-C来说,这个运行时系统就像一个操作转载 2017-08-03 09:44:28 · 634 阅读 · 0 评论 -
iOS应用程序的生命周期
无论是学习object C语言还是其他语言,我们首先要了解的就是该语言在程序中是如何运行的,生命周期是怎样的。学习iOS手机开发,就得了解iOS程序的运行的生命周期是如何的,现在我们来了解下iOS程序的生命周期iOS.#####iOS程序的入口程序和其他语言也是一样的,都是从mian函数还是启动,如下图main.m文件就是程序的启动入口int main(int argc, char * argv[]原创 2017-05-26 15:31:57 · 526 阅读 · 0 评论 -
KVO键值观察运用及其原理
1、概念KVO(Key-Value Observing),意为键值观察,它来源于设计者模式的观察者模式,它的基本思想是: 一个目标对象管理所有依赖它的观察者对象,并在它自身的状态发生改变时主动通知其观察者对象,这个主动通知通常是通过实现调用各观察者所提供的方法。观察者模式可以较完美的将目标对象和观察者对象解耦,可达到低耦合的理想状态。2、原理KVO在Apple中的API文档如下: Aut原创 2017-07-03 11:37:11 · 384 阅读 · 0 评论 -
Category分类添加成员变量
思考:如何实现给分类“添加成员变量”?默认情况下,因为分类底层结构的限制,不能添加成员变量到分类中。但可以通过关联对象来间接实现。我们现在来一步步分析:如下// RMPerson类@interface RMPerson : NSObject@property (nonatomic, assign) int age;@end@implementation RMPerson@end...原创 2018-10-09 10:30:51 · 961 阅读 · 0 评论