![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
iOS_基础篇
文章平均质量分 86
记录 iOS 开发的基础知识。
LOLITA0164
小白进城,多多包涵。
展开
-
C语言内存分配
Objective-C从名字来看就可以知道是一门超C语言,所以了解C语言的内存模型对于理解Objective-C的内存管理有很大的帮助。C语言内存模型图如下:从图中可以看出内存被分成了5个区,每个区存储的内容如下:栈区(stack):存放函数的参数值、局部变量的值等,由编译器自动分配释放,通常在函数执行结束后就释放了,其操作方式类似数据结构中的栈。栈内存分配运算内置于处理器的指令集,效率很高,但是转载 2017-08-17 12:17:19 · 19060 阅读 · 0 评论 -
iOS C语言之基础知识
数据类型运算符转载 2017-08-08 14:58:06 · 19304 阅读 · 0 评论 -
iOS C语言之指针
概览指针概念数组和指针字符串和指针函数和指针转载 2017-08-08 09:42:03 · 19377 阅读 · 0 评论 -
iOS 预处理语句
知识补充文件包含宏定义条件编译转载 2017-08-07 16:52:38 · 19273 阅读 · 0 评论 -
Swift5.2 拾遗笔记(四)
本文为私人学习笔记,仅仅做为记录使用,详情内容请查阅 中文官方文档。原创 2020-04-18 16:45:12 · 299 阅读 · 0 评论 -
Swift5.2 拾遗笔记(三)
本文为私人学习笔记,仅仅做为记录使用,详情内容请查阅 中文官方文档。原创 2020-04-16 14:31:39 · 230 阅读 · 0 评论 -
Swift5.2 拾遗笔记(二)
本文为私人学习笔记,仅仅做为记录使用,详情内容请查阅 中文官方文档。原创 2020-04-15 15:50:25 · 274 阅读 · 0 评论 -
Swift5.2 拾遗笔记(一)
本文为私人学习笔记,仅仅做为记录使用,详情内容请查阅 中文官方文档。原创 2020-04-15 15:03:07 · 300 阅读 · 1 评论 -
iOS 3DTouch 功能
3DTouch主屏交互Peek&Pop原创 2018-01-04 14:54:01 · 20343 阅读 · 0 评论 -
iOS 基础 - 约束布局
xib 设置代码 设置三方框架原创 2017-12-31 16:30:37 · 18928 阅读 · 0 评论 -
iOS 通知基础介绍
NSNotification 是iOS中一个消息通知类,存储消息的一些信息;NSNotificationCenter 是一个通知中心,采用单例设计模式,用来发布、接收等消息操作的类。原创 2017-08-15 09:43:06 · 19095 阅读 · 0 评论 -
iOS KVO的实现原理
当观察某对象时,KVO动态创建该对象的子类,将原始类和子类的属性设置`setter` 方法进行交互,并重写子类被观察属性 `setter` 方法,随后通知观察者该属性的变化状况。原创 2017-08-14 20:10:17 · 20104 阅读 · 0 评论 -
iOS 分类和扩展
一、类扩展二、分类/类别三、总结原创 2017-07-31 08:53:24 · 19272 阅读 · 0 评论 -
iOS 必备工具 - CocoaPods
一、CocoaPods是什么问题在IOS开发过程中,经常会使用到第三方框架,通常都是去GitHub上下载相关的框架,导入工程并添加框架所依赖的framework,那么问题就出现了,如何解决工程所依赖的framework的重复性,并且当三方框架更新时,需要我们手动的删除旧的框架、重新下载框架的最新版本,添加依赖的库,这过程繁琐而又易错。那有没有什么好的工具来解决上述的问题呢?答案是有的,就是Coco原创 2016-07-18 11:24:59 · 19885 阅读 · 0 评论 -
iOS CAGradientLayer 渐变图层
CAGradientLayer 是 CALayer 的子类,用来制作渐变效果的图层。原创 2017-07-11 15:16:51 · 33019 阅读 · 1 评论 -
iOS RunLoop基础和应用举例
RunLoop介绍1、RunLoop是寄生于线程的消息循环机制,它能保证线程存活,而不是线性执行完任务后就消亡。2、RunLoop与线程是一一对应的,每个线程只有唯一与之对应的一个RunLoop。我们不能创建RunLoop,只能在当前线程中获取线程对应的RunLoop(主线程RunLoop除外)。3、子线程默认没有RunLoop,需要我们主动去开启,但是主线程是自动开启了RunLoop...原创 2018-07-09 16:53:28 · 13275 阅读 · 0 评论 -
iOS NSOperation和NSOperationQueue解读
NSOperation,即操作对象,是一个**抽象类**,用于封装和单个任务关联的代码和数据。NSOperationQueue是管理调用一组NSOperation对象的类。原创 2018-06-27 18:08:22 · 10739 阅读 · 0 评论 -
iOS 快速从OC过渡到Swift(4.1),由理论到实战
引言本文旨在帮助开发者快速从OC开发过渡到Swift开发,挑选了一些比较浅显的但是比较常用的Swift语法特性,在介绍的过程中,通常会拿OC中的语言特性作比较,让大家更好的注意到Swift的不同。 另外需要说明的是,笔者也仅仅是刚刚接触Swift不久,如果有说的不对的地方,还望指正,这里贴出Swift中文翻译地址,方便大家可以深入了解Swift。Swift简介Swift是一门开发...原创 2018-08-27 22:11:43 · 13482 阅读 · 0 评论 -
Swift4.0 Codable协议:JSON和模型的转换
简单说明在OC中,以及Swift4.0之前,系统一直没有一套数据解析的方法。在Swift4.0后,终于推出了Codable协议,可实现json数据和数据模型的相互转换。首先来下 Codable ,它其实是一个组合协议,有 Decodable 和 Encodable 两个协议组成。/// A type that can convert itself into and out of an ...原创 2018-09-17 13:06:23 · 15337 阅读 · 1 评论 -
iOS 自建应用内测分发平台
应用内测分发平台首先就是祭出好用的应用内测分发平台。蒲公英:免费的应用托管平台 | App应用众测分发fir.im:免费应用内测托管平台 | iOS/Android应用Beta测试分发App TestFlight:官方内测平台一般的应用,通过【蒲公英】和【fir.im】进行应用分发就可以了,使用简单,应用可管理,下载方式便捷等等。下面我们介绍一下如何自行搭建一个分发平台...原创 2018-10-18 16:11:01 · 12154 阅读 · 0 评论 -
iOS CALayer介绍
声明该篇文章的内容参考自 iOS核心动画高级技巧 一文,非常感谢其作者和中文版的作者,让我能够相对系统的学习 CoreAnimation 的知识,我受益匪浅,再次感谢。如果有兴趣的小伙伴可以访问其网站,详细的,完整的学习 CoreAnimation。Core Animation 介绍Core Animation ,核心动画,似乎第一次看到这个名字的人都会认为这是一个和动画相关的库,但是实际...原创 2018-11-20 21:30:16 · 8489 阅读 · 0 评论 -
iOS 动画篇 - Core Animation
声明该篇文章的内容参考自 iOS核心动画高级技巧 一文,非常感谢其作者和中文版的作者,让我能够相对系统的学习 CoreAnimation 的知识,我受益匪浅,再次感谢。如果有兴趣的小伙伴可以访问其网站,详细的,完整的学习 CoreAnimation。CAAnimation 篇CAAnimation 是一个抽象动画类。 遵循着 CAMediaTiming 和 CAAciotn 两个协议。 要...原创 2018-11-26 09:08:51 · 8254 阅读 · 0 评论 -
iOS 动画篇 - UIKit动画(二)
简单使用篇简介iOS10带来了很多新特性,其中有个 UIViewPropertyAnimator 类,光从名字上就可以看出,这是一个操作属性动画的类。实际上,这个类能够让我们对视图进行动画控制,我们除了可进行正常的运行动画,如开始、暂停、重启等操作动画,还可以将动画转换为交互式动画,任意的控制时间。它可以对视图的可动画属性进行操作,例如frame,center,alpha 和 transfo...原创 2018-11-29 22:02:45 · 8484 阅读 · 0 评论 -
iOS 动画篇 - UIKit动画(一)
在前面文章中,有详细介绍过 Core Animation 动画,UIKit 动画实质上是针对核心动画的封装,不同的是,核心动画操作的是图层级别(CALayer),通常情况下,它不会影响到视图层,而 UIKit 针对的是视图级别(UIView),我们在做此动画后,视图的 frame、center等属性都会响应的变化。在入场开发中,UIKit 动画块可以完成百分之九十以上的动画任务,这些动画任务通常...原创 2018-12-04 17:55:15 · 7996 阅读 · 0 评论 -
iOS 动画篇 - pop动画库
Pop 是 iOS,tvOS 和 OS X 的可扩展动画引擎。除了基本的静态动画外,他支持弹性和衰减动画动态动画,使其可用于构建逼真的基于物理学的交互。API 允许与现有的 Objective-C 或 Swift 代码库快速集成,并支持 NSObject 上任何属性的动画。它是一个成熟并且经过良好测试的框架。本文主要着重介绍 Pop 库的使用,并结合实例作相关动画的演示。简单示例我们先看来...原创 2018-12-06 13:55:34 · 8711 阅读 · 0 评论 -
iOS Core Image - 入门导读
简介Core Image 是一种图像处理和分析技术,可为静态和视频图像提供高性能处理。 使用许多内置图像过滤器来处理图像并通过链接过滤器来构建复杂效果。关于过滤器种类和效果可以查看官方文档:Core Image Filter Reference系统内置了多种滤镜效果,你可以将多种滤镜组合使用,一般情况下的需求都可以满足。当然,你也可以自定义滤镜效果。关于自定义了滤镜可以查看官方文档:Co...原创 2019-01-24 16:37:00 · 4502 阅读 · 0 评论 -
iOS GCD
GCD简介GCD 是 Apple 开发的一个多核编程的解决方法,简单易用,效率高,速度快。通过 GCD,开发者只需要向队列中添加一段代码块(block或C函数指针),而不需要直接和线程打交道。GCD在后端管理着一个线程池,它不仅决定着你的代码块将在哪个线程被执行,还根据可用的系统资源对这些线程进行管理。这样通过GCD来管理线程,从而解决线程被创建的问题。GCD基本概念任务和队列...原创 2018-07-02 16:46:07 · 9980 阅读 · 0 评论 -
iOS NSThread
线程实例创建一个线程系统提供了三种创建线程的方法- (instancetype)init;// 通过指定对象和方法选择器的方式,argument是传递的参数- (instancetype)initWithTarget:(id)target selector:(SEL)selector object:(nullable id)argument;// 注意,这种方式是iOS10之...原创 2018-06-22 17:51:42 · 10379 阅读 · 0 评论 -
iOS 多线程的一些知识
转载地址:iOS多线程全套:线程生命周期,多线程的四种解决方案,线程安全问题,GCD的使用,NSOperation的使用一、多线程的基本概念进程:可以理解成一个运行中的应用程序,是系统进行资源分配和调用的基本单位,是操作系统结构的基础,主要管理资源。【线程】:进程的基本执行单元,一个进程拥有至少一个线程。【主线程】:处理UI,所有更新UI的操作都必须在主线程上执行。【多线程】:在同...转载 2018-06-11 15:09:15 · 10415 阅读 · 0 评论 -
iOS 图形绘制
在许多需要图形显示数据的应用中常常需要进行图形绘制,例如股票金融。在一些特定动画中,我们同样需要结合图形的绘制。- 重写 drawrect- 外部代理- CAShapeLayer原创 2017-06-23 12:47:43 · 19042 阅读 · 0 评论 -
iOS 动画篇 - CAAnimation初识
CAAnimation 是一个抽象动画类,无法直接使用,需要使用它的子类,动画分为两大类:属性动画和转场动画。属性动画顾名思义,针对图层可动画属性进行动画,转场动画通常用于视图切换,例如A视图切换为B视图。CAAnimation 针对的是图层而非视图,因此默认情况下,它在完成动画后恢复到最初状态,且不会改变视图的相关属性。原创 2017-07-04 11:18:31 · 19189 阅读 · 0 评论 -
iOS CAShapeLayer示例
CAShapeLayer继承自CALayer,可使用CALayer的所有属性CAShapeLayer需要和贝塞尔曲线配合使用才有意义。贝塞尔曲线可以为其提供形状,而单独使用CAShapeLayer是没有任何意义的。原创 2017-06-26 09:08:09 · 18959 阅读 · 0 评论 -
iOS 动画篇----UIView动画
一、UIView动画介绍UIView动画实质上是对Core Animation的封装,提供简洁的动画接口。我们可以同过UIView的动画类别来改变控件的frame、bounds、transform、alpha等等,使用界面看起来跟流畅优雅,增加用户交互上等体验。二、UIView 类方法动画1、方法解析:// 动画开始。animationID:动画标识、context:附加参数在设置了代理的情况下,此转载 2017-07-04 16:20:57 · 18662 阅读 · 0 评论 -
iOS CAReplicatorLayer 复制图层
CAReplicatorLayer 是 CALayer 的子类,是一个图层容器,可以添加特定的图层到其中,并复制出多个图层,例如你把一个单一的形状,通过简单的设置,在屏幕上就可以显示多个相同的形状。原创 2017-07-07 16:41:10 · 19758 阅读 · 0 评论 -
iOS 运行时的那些事儿
什么是运行时?编程语言有静态和动态之分。静态语言:如 Java、C,在编译阶段就确定了成员变量、函数的内存地址。动态语言:如OC,在运行期间才确定成员变量和函数地址,即使没有实现部分同样能通过编译。动态语言具有比较高的灵活性,但是正因为如此,动态语言即使在编译通过之后,依然会发生错误,程序有着当对的不确定性。Objective-C 就是一种动态语言,它为我们提供了 runtime 机制,是...原创 2017-07-31 10:27:38 · 18968 阅读 · 0 评论 -
iOS 经典的协议委托模式
协议委托模式是 OC 中经典的设计模式,该模式在一定程度上降低了代码的耦合性。同时协议委托模式提高了代码的灵活性,也解决了委托者和被委托者的通信问题。原创 2017-08-06 17:34:18 · 18500 阅读 · 0 评论 -
iOS 野指针和僵尸对象
几个概念转载地址转载 2017-08-14 10:43:24 · 19644 阅读 · 0 评论 -
iOS 基础 - @property、@synthesize、@dynamic
@property@synthesize@dynamic原创 2017-08-22 16:12:06 · 18825 阅读 · 0 评论 -
iOS 关于Block代码块的详解
代码块Block是在iOS4开始引入的,是对C语言的扩展,用来实现匿名函数的特性Block是一种特殊的数据类型,可以像基本数据类型一样定义成变量、作为参数、返回值来使用Block还可以保存一段代码,在需要的时候调用原创 2017-08-16 14:39:47 · 19236 阅读 · 0 评论 -
iOS 视图的二维变换
变换属性可以控制视图进行移动、缩放、移动,结合视图动画或者手势可以实现一些简单的动画效果。变换会真实的改变动画的 frame、size、rect,可以通过特定的方法变换这些值。CGAffineTransform 形变是通过 **仿射变换矩阵** 控制的,其中平移是矩阵相加,旋转与缩放则是矩阵相乘。原创 2017-06-23 09:18:23 · 18929 阅读 · 0 评论