iOS-学习总结
爱生活的小悦悦
生活和艺术一样,最美的永远是曲线。 -- 爱德华布尔沃 - 利顿
展开
-
被误解的 MVC 和被神化的 MVVM
转自唐巧大神博客 发表于 2015-11-02 22:06文章目录1. 被误解的 MVC1.1. MVC 的历史1.2. Controller 的臃肿问题何解?1.3. 如何对 ViewController 瘦身?1.3.1. 将网络请求抽象到单独的类中1.3.2. 将界面的拼装抽象到专门的类中1.3.3. 构造 ViewModel1.3.4. 专门构造存储类1转载 2017-03-05 14:43:23 · 453 阅读 · 0 评论 -
核心动画(三)-关键帧动画
一、简单介绍CAKeyframeAnimation是CApropertyAnimation的子类,跟CABasicAnimation的区别是:CABasicAnimation只能从一个数值(fromValue)变到另一个数值(toValue),而CAKeyframeAnimation会使用一个NSArray保存这些数值属性解析:values:就是上述的NSArray对象。原创 2017-07-09 23:26:40 · 489 阅读 · 0 评论 -
核心动画(一) - 概念篇
iOS动画-核心动画概念篇核心动画使用文档地址为:Core Animation Guide。什么是核心动画?核心动画的优点?核心动画中类的层次结构?原创 2017-06-26 09:34:33 · 512 阅读 · 0 评论 -
内存管理 - 引用计数
内存管理 - 引用计数1.内存管理原理:引用计数引用计数发展时间轴:苹果在 2011 年的时候,在 WWDC 大会上提出了自动的引用计数(ARC)。ARC 背后的原理是依赖编译器的静态分析能力,通过在编译时找出合理的插入引用计数管理代码,从而彻底解放程序员。直到 2013 年左右,苹果认为 ARC 技术足够成熟,直接将 macOS(当时叫 OS X)上的垃圾回收机制废弃,从而使得 ARC 迅速被接受原创 2017-08-25 09:39:57 · 477 阅读 · 0 评论 -
浅析栈区和堆区内存分配的区别
浅析栈区和堆区内存分配的区别一直以来总是对这个问题的认识比较朦胧,我相信很多朋友也是这样的,总是听到内存一会在栈上分配,一会又在堆上分配,那么它们之间到底是怎么的区别呢?为了说明这个问题,我们先来看一下内存内部的组织情况.从上图可知,程序占用的内存被分了以下几部分.1、栈区(stack)由编译器自动分配释放 ,存放函数的参数值,局部变量的值等,内存的分配是连续的,类似于平时我们所说的栈,如果还不清楚原创 2017-08-25 09:41:54 · 259 阅读 · 0 评论 -
gitignore文件的添加
.gitignore文件的添加原创 2017-08-29 15:25:48 · 509 阅读 · 0 评论 -
id和instancetype的区别
id和instancetype的区别区别1:类型确定的时期在ARC(Auto Reference Count)环境下:instancetype:编译期确定类型。id类型:运行时确定类型。在MRC(Manual Reference Count)环境下: instancetype和id一样,不做具体类型检查。区别2:作为方法参数id可以作为方法的参数,但instancetype不可以。ins原创 2017-09-20 20:39:39 · 459 阅读 · 0 评论 -
核心动画(四)- 转场动画、组动画
转场动画、组动画原创 2017-07-16 18:27:38 · 278 阅读 · 0 评论 -
核心动画(二)- CABasicAnimation的基本使用方法
CABasicAnimation类的使用方式就是基本的关键帧动画。 所谓关键帧动画,就是将Layer的属性作为KeyPath来注册,指定动画的起始帧和结束帧,然后自动计算和实现中间的过渡动画的一种动画方式。CABasicAnimation的基本使用顺序1.引用QuartzCore.framework将”QuartzCore.framework”这个库添加到项目中。并且在需要使用CABaseAnim原创 2017-07-02 18:36:23 · 271 阅读 · 0 评论 -
OC中的修饰符
OC中的修饰符首先从简单到复杂大致分个类方法名修饰符:getter、setter原子性修饰符:atomic|、nonatomic读写性修饰符:read、write、readonlyset属性修饰符:assign、retain、copy方法名修饰符方法名修饰符 getter和setter属性修饰符:用于设置自定义生成的getter和setter方法名,使用之后将不再使用系统默认的sett原创 2017-03-23 14:26:00 · 409 阅读 · 0 评论 -
iOS 多线程篇 --- 简单介绍
一、进程和线程1.什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内比如同时打开QQ、Xcode,系统就会分别启动2个进程 通过“活动监视器”可以查看Mac系统中所开启的进程2.什么是线程 1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程) 线程是进程的基本执行单元,一个进程(程序)的所有任务都在线程中执行原创 2017-03-27 14:52:44 · 269 阅读 · 0 评论 -
iOS中Block的循环引用问题
iOS中Block的循环引用问题每周总结,第一周开始啦,最近在看AFNetworking源码时,看到了__strong的使用,很惭愧的说在平时开发中从来没有使用过__strong self ,除此之外,发现自己对Block的循环引用理解的也不深刻,今天就总结下block的循环引用问题AFNetworking中__strongSelf应用如下AFNetworkReachabilityS...原创 2017-05-14 23:16:41 · 395 阅读 · 0 评论 -
Autoreleasepool的理解及原理
Autoreleasepool的理解及原理之前师父问我对autoreleasepool有什么理解?当时的并没有研究过autoreleasepool,只知道在程序启动时会建立一个autoreleasepool,但不清楚autoreleasepool运行的原理。那么今天就来总结一波。接下来将从以下几个问题出发原创 2017-05-17 19:07:24 · 1840 阅读 · 0 评论 -
iOS之单例模式初探
1.什么是单例?2.怎么创建一个单例?3.什么时候需要使用单例模式?4.单例模式的利与弊?原创 2017-06-19 18:00:00 · 412 阅读 · 0 评论 -
浅谈block的应用与实现
浅谈Block的应用及原理1.使用:NSInteger (^mySum)(NSInteger,NSInteger) = ^(NSInteger paramA, NSInteger paramB){ return paramA + paramB;};以上定义了一个Block变量,block本来就是一个程序段,因此有返回值有输入的参数,这里这个block返回的类型是BOOL ,“^”表示bl原创 2017-08-25 09:58:45 · 488 阅读 · 0 评论