oc底层原理学习笔记

oc基础

  

2019-07-11 22:52:35

oc底层原理学习 1、oc的本质是什么 2、instance 对象是什么 3、Class对象原理是什么 4、meta-class对象 5、isa指针指向哪里 参考文章:(以上内容全部摘自下面作者的文章,我只改了格式) 1、oc的本质是什么 本质就是就是一个结构体,这个结构体里面包含一个isa指针,以及一些成员变量\color{red}{这个结构体里面包含一个isa指针,以及一些成员变量}这个结构体...

C和OC的对比

OC

  

2019-07-06 16:21:34

1、源文件对比 OC中常见的文件有两种:.h和.m的文件 2、基本语法对比 1)数据类型对比学习 2)变量的定义对比 3)流程控制语句对比 1)if else 2)switch 3)while 4)do while 5)for 新增:增强型for循环,可以快速遍历数组、字典等集合 用法举例: 4)函数(方法)定义和声明对比 OC中把函数称之为方法 3、OC新增的数据类型介绍 1)逻辑型 (1)Bo...

一.对象作为方法参数 结构提示:士兵开枪射击,士兵对象,拿枪和子弹然后射击. *对象方法: -(void)fire(Gun )gun :(Clip *)clip; [sp fire:gp :clip] [士兵(对象) 射击(参数(枪 和 子弹))] gp:枪的类指针地址 clip:弹夹类的指针地址 sp:士兵类的指针地址 二,多文件开发 三.匿名对象 1.当对象只需要使用一次的时候就可以使用匿名对...

一.实例变量修饰符 @public @private @protected 注意:默认情况下所有的实例变量都是protected @package 二.、description方法 Description方法包括类方法和对象方法。(NSObject类所包含) (一)基本知识 -description(对象方法) +description(类方法) 重写description方法,实现对对象所有属性...

1)用于快速创建对象的类方法, 我们称之为类工厂方法 二 类的本质: 三.类的加载过程 1.当程序启动时,就会加载项目中所有的类和分类。而且加载后会调用每个类 和分类的+loa方法。只会调用一次 2.当第一次使用某个类时,就会调用当前类的+initialize方法 3.先加载父类,在加载子类(先调用父类的+load,在调用子类的+load方法)先初始化父类,再初始化子类(先调用父类的+initia...

objective-C基础教程 category

oc

  

2019-08-30 10:11:54

类别 Xcode 为我们提供了创建类别的方法。 下面创建了一个NSString的类别, 添加了一个返回“Hello world!”字符串的类方法。...

1、了解Objective-C语言的起源 Objective-C 使用“消息结构”(messaging structure)而非“函数调用”(function calling)。是由Smalltalk(消息型语言鼻祖)演化而来; 消息与函数调用的区别 a、使用消息结构的语言,其运行时所应执行的代码由运行环境来决定;而使用函数调用的语言,则有编译器决定...

下午看见群里有人问 swift 插件导入 oc 项目报错的问题, 我之前解决过, 但是忘了解决过程是怎么样的了, 这里记录下方便以后备查 没兴趣追踪原因的直接查看总结下章节 文章目录 复现错误 尝试解决 总结下 后记 复现错误 创建一个主工程(oc) 创建一个插件工程(swift) 关联工程 运行 iOS 项目得到错误信息 错误信息大概是这样的 尝试解决 提示信息中让我们联系作者加入一个 SWIF...

OC单例模式详解

oc 单例模式

  

2019-07-23 20:31:22

单例模式 ARC环境下严谨的单例模式 MRC环境下严谨的单例模式 拓展:区分是MRC还是ARC的宏 通用的单例模式   单例模式 有时候我们需要一个全局的对象,而且要保证全局有且仅有一份即可,这时候就需要用到单例设计模式,但是需要注意的是:在多线程的环境下也需要做好线程保护。其实系统已经有很多单例存在,例如UIApplication、NSNotification、NSFileManage...

OC之RunLoop了解一下

runloop  线程  oc

  

2019-08-13 07:30:06

一、进程      进程是指在系统中正在运行的一个应用程序每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内比如同时打开QQ、Xcode,系统就会分别启动2个进程 二、线程         是用来执行任务的,线程只要彻底执行完A才能去执行B,这就是线程的安全,为了防止任务能同时进行,引入了多线程。   &...

扫描身体动画

扫描动画  OC

  

2019-08-30 15:36:34

扫描身体动画 前言 前期准备 进入正题 扫描身体动画 前言 前些日子,收到了一个需求,要求做一个动画,效果是那种类似于身体检查,从头扫描到脚的。本着赶快交付不想麻烦的套路,我在网上找了一堆资源,发现没有比较符合的选择。没办法,只能自己稍微来实现一个了。 前期准备 这个动画,需要用到的有:底图,扫描的视图,以及扫描到的部位需要展示的图片。还有就是思路。我们的思路是这样子的:扫描视图为底图的上层,然后...

iOS | Runtime应用

Runtime  iOS  OC

  

2019-09-11 23:23:02

Runtime,简称运行时。最主要的是消息机制。对于C语言,函数的调用在编译的时候会决定调用哪个函数,编译完成之后直接顺序执行。OC的函数调用称为消息发送,属于动态调用过程。在编译的时候并不能决定真正调用哪个函数(即使这个函数并未实现,只要申明过就不会报错,而C语言在编译阶段就会报错),只有在真正运行的时候才会根据函数的名称找 到对应的函数来调用。 消息发送机制 OC语法中调用方法时,在运行时会变...

iOS 温故知新(四)

基础

  

2019-06-04 02:01:51

1、_objc_msgForward函数是做什么的,直接调用它将会发生什么? _objc_msgForward是 IMP 类型,用于消息转发的:当向一个对象发送一条消息,但它并没有实现的时候,_objc_msgForward会尝试做消息转发。 调用resolveInstanceMethod:方法 (或 resolveClassMethod:)。允许用户在此时为该 Class 动态添加实现。如果有实...

Java环境变量配置

基础

  

2019-06-13 12:33:42

前言 初学Java时,环境的变量配置会难到很多初学者,甚至包括一些已经学习JAVA一段时间的人(我就是这样,可能是因为我比较菜)。 接下来我会把环境变量的一些有关内容在这里整理一下,一些基础的东西,也无关什么抄袭了,至少接下来的这些都是我一点一点打出来的。 正文 一、前期准备 二、正式步骤 1.右键我的电脑(小注1)==>选择属性选项==>选择高级系统设置==>选择环境变量 2....