LOTAnimationView
继承自 LOTView
,其本质上还是 UIView
1 | // 关键字 @compatibility_alias 的意思是给一个类设置一个别名。这样就可以不用重构以前的类,直接使用新的名字替代原有的名字 |
大多数时候,都在思考自己该走向何方
继承自 LOTView
,其本质上还是 UIView
1 | // 关键字 @compatibility_alias 的意思是给一个类设置一个别名。这样就可以不用重构以前的类,直接使用新的名字替代原有的名字 |
JavaScript 越来越多的出现在客户端的开发当中,ReactNative、JSPatch 都是利用 JavaScript 与客户端语言结合实现的。在 iOS 中,使 iOS 拥有执行 JavaScript 代码能力的的便是 JavaScriptCore 框架。
iOS 项目一般使用 Xcode 进行开发。项目创建完成后,点击项目名称,在项目导航栏的右侧板面上显示有 PROJECT 和 TARGETS 两部分。iOS 项目的开发环境搭建主要就是基于我们项目的 Project 和 Target 进行展开的,下面对这两部分进行详解,参考官方文档。
在 iOS 中 UIResponder 类是专门用来响应用户的操作处理各种事件的,包括触摸事件(Touch Events)、运动事件(Motion Events)、远程控制事件(Remote Control Events)。
在UIKit中,UIApplication、UIView、UIViewController这几个类是直接继承自UIResponder,所以这些类都可以响应事件。因此 UIKit 中的视图、控件、视图控制器,以及我们自定义的视图及视图控制器都有响应事件的能力。这些对象通常被称为响应对象
,或者是响应者
。
本文将详细介绍一个 UIResponder 类提供的基本功能。
无论一个类设计的多么完美,在需求的演进当中,总会碰到一些无法预测的情况。那么怎么扩展已有的类?一般而言,有继承和组合两种选择。在 Objective-C 2.0 中,又提供了 category 这个语言特性,可以动态地为已有类添加新行为。本文将对 category 和 extension 进行介绍。
Git 是目前世界上最先进的分布式版本控制系统。对应的是以SVN为代表的集中式控制系统。
集中式(SVN) | 分布式(Git) | |
---|---|---|
是否有中央服务器 | 有。开发人员需要从中央服务器获得最新版本的项目然后在本地开发,开发完推送给中央服务器。因此脱离服务器开发者是几乎无法工作的 | 没有中央服务器,开发人员本地都有 Local Repository |
网络依赖 | 必须要联网才能工作,而且对网络的依赖性较强,如果推送的文件比较大而且网络状况欠佳,则提交文件的速度会受到很大的限制。 | 分布式在没有网络的情况下也可以执行commit、查看版本提交记录、以及分支操作,在有网络的情况下执行 push 到 Remote Repository。 |
文件存储格式 | 按照原始文件存储,体积较大 | 按照元数据方式存储,体积很小 |
是否有版本号 | 有 | 没有 |
分支操作的影响 | 创建新的分支则所有的人都会拥有和你一样的分支 | 分支操作不会影响其他开发人员 |
提交 | 提交的文件会直接记录到中央版本库 | 提交是本地操作,需要执行push操作才会到主要版本库 |
编译时刻
:宏是预编译(编译之前处理),const是编译阶段。编译检查
:宏不做检查,不会报编译错误,只是替换,const会编译检查,会报编译错误。宏的好处
:宏能定义一些函数,方法。 const不能。宏的坏处
:使用大量宏,容易造成编译时间久,每次都需要重新替换。注意:使用宏,并不会生成很多内存,宏定义的是常量,常量都放在常量区,只会生成一份内存。
1 | // 常见的常量,使用宏替换 |
随机存取存储器(random access memory,RAM)又称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存(内存)。
ROM是只读存储器(Read-Only Memory)的简称,是一种只能读出事先所存数据的固态半导体存储器。
在计算机系统运行应用时,会把APP从ROM里面拷贝到内存(RAM),然后从内存里面执行代码。运行的应用程序的数据都是保存在内存中的,不同类型的数据,保存的内存区域不同。
经典的 C 语言内存分布包括以下 5 个部分:
最近锤子科技发布新手机,手机推出重大功能分词(Big Bang),其实 iOS 拥有分词的 API,代码如下