自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 关于TLS/SSL协议

首次发布地址由于http协议是明文传输,安全性差,因此要利用https来进行加密传输,关键点在于TLS/SSL协议一、TLS/SSL协议的发展SSL(安全套接层)最初在1994年创建,作为http的扩展,后来逐步发展为独立协议,并更新了三个版本(v1.0、v2.0、v3.0),后来在v3.0基础上标准化了该协议,并命名为TLS(传输层安全协议v1.0)。因此,TLS可以理解为SSL协议的升级...

2018-12-20 12:41:26 453

原创 解读《图解HTTP》

#解读《图解HTTP》##一、了解Web及网络基础使用HTTP协议访问Webweb使用HTTP协议作为规范,完成客户端到服务器等一系列运作流程,因此,Web是建立在HTTP协议上通信的。HTTP的诞生HTTP协议诞生于1989年3月。HTTP/1.0在1996年5月正式作为标准被公布。HTTP/1.1在1997年1月被公布,用作当今主流的HTTP协议版本。最初设想的基本理念...

2018-11-07 17:27:40 423

原创 降频操作:防抖、节流

当出现频繁调用函数或频繁请求数据的场景(如带模糊搜索的输入框)时,降频操作会对性能优化产生极大帮助。防抖函数当持续触发事件时,防抖函数会判断n秒内没有再次被触发,则会执行。若n秒又内触发了事件,则重新计算n秒时间。(可通过参数设置是否立即执行)/** * @desc 防抖函数 * @param func 目标函数 * @param wait 延迟执行毫秒数 * @param imm...

2018-11-07 14:11:29 645

原创 iOS开发示例————使用CAShapeLayer&UIBezierPath绘制数据饼图

前言借鉴标哥的博客部分文章:http://www.henishuo.com/ios-cashapelayer-learning/CAShapeLayer和drawRect的比较:drawRect:属于CoreGraphics框架,占用CPU,性能消耗大,不建议重写CAShapeLayer:属于CoreAnimation框架,通过GPU来渲染图形,节省性能。动画渲染直接提交给手机GP

2016-06-02 10:17:40 2529

原创 iOS开发示例————第三方框架MJRefresh简单使用

首先要感谢这篇文章,自己在网上找了很多资料,这篇写的比较好:http://hao.jobbole.com/mjrefresh-ios/自己学习使用了之后感觉其实还是很好用的,主要就是header和footer这两个对象的一些设置,比较方便。自己写了个带注释的小demo:首先导入MJRefresh文件夹和在实现的类中包头文件“MJRefresh.h”//// ViewCo

2016-05-23 21:06:56 7937 2

原创 iOS开发工具————cornerStone、sourceTree快速上手,实用性讲解,干货!

初到公司,必须要学会版本管理工具(其实就是多人协作开发使用的代码管理工具),直接上干货!svn和Git都是版本管理系统:svn是集中式的版本管理系统,所有版本都要上传到一个集中的服务器上。Git是一个分布式的版本管理系统,可在本地有自己的仓库,如果想分享自己的代码则要上传到网络服务器上。Cornerstone和sourceTree都是本地的代码托管管理工具,省去终端命令

2016-05-19 15:49:28 2210

转载 iOS开发————数据本地化存储方式之Keychain

iOS的keychain服务提供了一种安全的保存私密信息(密码,序列号,证书等)的方式,每个ios程序都有一个独立的keychain存储。相对于NSUserDefaults、文件保存等一般方式,keychain保存更为安全,而且keychain里保存的信息不会因App被删除而丢失,所以在重装App后,keychain里的数据还能使用。从ios 3。0开始,跨程序分享keychain变得可行。

2016-05-16 11:15:30 2244

原创 iOS开发示例————短信验证码倒计时

这是我进公司以来算式第一个正式demo的编写,磨了三天,求助很多朋友,真是不容易啊,写完之后发现思路可以更好,望多多指教。功能需求:点击button,开始倒计时显示,通过导航控制器pop到上一个界面逛一会儿,再回来倒计时显示继续,之间不间断,到00停止。逻辑过程:利用NSTimer定时器实现倒计时功能,当界面pop回上一个界面时,NSTimer被销毁,再push进来时通过判断button之

2016-05-16 10:07:59 1836

转载 iOS开发————数据本地化方式之SSKeychain

转自:http://www.cnblogs.com/m4abcd/p/5242254.html  并对此博主表示感谢!我的邮件:[email protected] 如果有这篇文章对您有帮助就点下推荐或者随意评论一个呗,谢谢谢谢,随便转载,标明出处就好。Keychain 使用? ---为了实用最大化我觉得我应该直接先说使用!当然是使用第三方库啦:sskeychain

2016-05-15 18:01:03 1429

转载 iOS开发————数据本地化方式之NSUserDefaults

NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名、密码之类的,个人觉得使用NSUserDefaults是首选。下次再登陆的时候就可以直接从NSUserDefaults里面读取上次登陆的信息咯。因为如果使用自己建立的plist文件什么的,还得自己显示创建文件,读取文件,很麻烦,而是用NSUserDefaults则不用管这些东西,就像读字符串一样,直接

2016-05-15 17:55:36 929

原创 iOS开发————对象之间通信之代理协议

一、代理实现对象间通信: 确定谁是代理对象,谁是被代理对象。 事件在哪里发生?谁就是被代理对象 事件在哪里响应?谁就是代理对象 需求:举例:保姆照顾小孩,当小孩脏了时给她清洁,当小孩不开心时陪玩。被代理类 Child 定义代理属性(id),并且此代理属性要遵守协议 事件发生时,要调用代理属性的协议方法来响应这个事件。 代理类 Nanny 要遵守协

2016-05-10 15:00:08 1463

原创 iOS开发————通信方式之block

一、block的概念: 别称:代码段,块,闭包,是苹果公司添加到OC语言中的。 作用:在程序运行的过程中保存一段代码,并且这段代码可以进行传递。 应用:用于对象间的通信。二、block的语法: 和函数指针的语法相似要设定block的返回值和参数个数及类型。 (1)定义: 无参无返回值的block变量:void (^myBlock)(void) 有参数有返回值的b

2016-05-10 14:14:26 1632

原创 iOS开发————通信方式之NSNotification

NSNotification即通知,可以实现一个对象发送通知,多个对象接收到通知。工作流程:在需要发送通知的类中添加一个通知中心(单例)。在需要发送通知的类中发送通知,发送通知的对象是self,可定义相应的用户信息,通知名可以是任意定义的字符串,监听通知需要和此通知名匹配。在需要接收通知的类中添加通知的接收对象,用来监听发出的通知,下面自定义一个接收者的相应方法,方法名封装到上面的

2016-05-10 10:24:52 804

原创 iOS开发————通信方式之KVO

KVO即键值观察者,它提供了一个观察者模式,用于监听某个对象属性值的变化,可以实现一个观察者,一个被观察者,多个接收者之间的通信关系。 KVO的工作流程: 1.被观察者属性发生变化(child对象的cleanValue发生变化) 2.观察者监听到属性的变化(KVO帮我们实现了观察者的业务逻辑) 3.观察者会调用观察者方法通知到事件的接收者(观察者通知到保姆) 4.事

2016-05-10 09:13:14 974

原创 iOS开发之OC基础————NSArray、NSSet、NSDictionary

总结一下Foundation框架中常用的三个类:NSArray、NSSet、NSDictionary的常用属性和方法NSArray、NSSet、NSDictionary只能存储OC对象,不能存储基本数据类型(int , char , double , float , BOOL , enum(枚举))和结构体类型。实际使用时可以将基本数据类型转换成NSNumber类型。NSArray

2016-04-27 19:29:36 881

原创 iOS网络编程————AFNetworking上传和下载

作为使用最广泛的网络第三方框架,AFNetworking2.0对最新的iOS特性有很好的支持,对NSURL进行了封装,使用更加简便,功能更加完善。导入AFNetworking1:Github下载地址:https://github.com/AFNetworking/AFNetworking2:将AFNetworking和UIKit+AFNetworking拖入当前的工程中,iOS

2016-04-26 21:31:37 2321

原创 iOS网络编程————POST请求和GET请求

iOS网络编程内容很多,也很重要,小编慢慢总结,慢慢来讲。iOS的网络编程主要涉及两者:客户端和服务器端,上传和下载数据都是客户端通过访问服务器端来实现的。服务器端开发语言有Java,.Net,C/C++,PHP,Ruby,Python等,而手机客户端的开发语言有OC,Java等与后端开发语言不同,因此要实现服务器端与客户端的数据传输必然要有约定一种数据传输的格式和传输协议,否则二者不能进

2016-04-25 22:48:20 5004

原创 iOS多线程开发————GCD的基本使用

在此小编做一个自我学习的总结和对iOS开发新新人的小小福利吧。直奔主题的吧,讲讲GCD:Grand Central Dispatch(多线程优化技术),是Apple提供的一套更底层,更高效的并发编程技术,属于纯C语言编写,基于Block实现的,支持同步或者异步任务处理,串行或并行的处理队列,非系统调用的信号量机制,定时任务处理、进程、文件或者网络监听任务等。特别的:GCD可以自动的根据

2016-04-24 23:17:02 842

转载 iOS开发工具————CocoaPods介绍及使用

CocoaPods是一个三方库的管理工具,因为在开发过程中,会用到很多三方库。在没有CocoaPods的时候,我的步骤是这样的->到Github上搜索需要的库(AFNetworking,SDWebImage等)->下载->找到Demo官方Demo中的库->导入项目。当三方库更新后,我又要重复上面的步骤,特别麻烦。有了CocoaPods,已经纯粹进入到了带我飞的地步,所以,本文将讲解CocoaPod

2016-04-24 15:04:46 609

转载 iOS开发————同步加载与异步加载

编者前一阵去面试,被问到这个概念,同时在学习的过程中同步异步的概念不是很清楚,转载一篇清晰易懂的文章,学习一下同步加载与异步加载的相关内容。一、同步下载(交互不好,容易出现卡死现象,一般下载数据较小或有特定需求才使用)。 发送同步请求后,程序将停止用户交互,直到服务器返回数据完成后,才进行下一步的操作。//第一步:创建URLNSURL *pURL = [

2016-04-22 10:58:18 811

原创 iOS开发————几种音频播放方式

这篇同样是编者对自己学习的小总结以及对iOS初级开发者的小福利,大神莫吐槽...首先来谈谈AVFoundation框架:它是iOS中用于处理基于时间的媒体数据的高级框架,也是基于Core Audio,Core Media,Core Video等框架构建的,充分利用了多核硬件的优势并大量使用了Block和GCD机制。所有的iOS App都具有默认的音频会话,它定义了以下行为:可以播放音频

2016-04-21 20:05:03 9771

原创 iOS开发————几种图片加载方式

作为编者自己的一个复习总结以及广大iOS开发初学者的小小福利,呕心沥血诞生出这篇图片加载方式的文章,如有不足请指正。先谈谈iOS图像加载方式的分类吧。本地加载:从程序包中加载,从沙盒加载以及从本地相册加载。网络加载:根据网络地址来加载图片。先总结网络加载:NSData提供了简单的网络数据加载,这个数据当然包括了图像数据啦,NSData和UIImage之间可以互相转换

2016-04-21 19:28:46 14832 2

转载 iOS框架之两个极为重要的框架————Foundation和UIKit的相关内容以及一些其他Cocoa相关内容

Cocoa框架是iOS应用程序的基础,了解Cocoa框架,对开发iOS应用有很大的帮助。1、Cocoa是什么?Cocoa是OS X和 iOS操作系统的程序的运行环境。是什么因素使一个程序成为Cocoa程序呢?不是编程语言,因为在Cocoa开发中你可以使用各种语言;也不是开发工具,你可以在命令行上就可以创建Cocoa程序。Cocoa程序可以这么说,它是由一些对象组成,而这些对象的

2016-04-21 11:14:29 3458

原创 iOS开发————触摸与手势

在iOS设备中我们必不可少的操作便是在屏幕上触摸动作和相应的手势动作,那么你的触摸和手势是如何被iOS设备所识别并且做出相应响应的呢,接下来编者将浅谈其中的奥秘。从事件发生到其处理的对象,传递要经过特殊的一段过程。当用户点击设备屏 幕时,iOS捕捉到一系列的触摸,将其打包到UIEvent对象中并放置到应用程序 活动事件队列中。UIApplication对象从事件队列中取出最前面的事件并将其

2016-04-21 10:41:30 678

原创 iOS开发————线程与进程的区别于联系

浅谈编者对线程与进程的认识与理解开门见山吧,打个比方,你在一台计算机上正在用QQ音乐听歌,同时在用微信跟女票聊天,这时你的电脑上就有两个进程,QQ音乐和微信(可能不止两个,但是最起码是两个),当你在微信上打字的时候同时收到了女票的一个表情,这时微信这个应用程序中就有最起码两个线程,一个控制你键盘的输入,另一个是接收你女票的表情。通过这样一个简单的例子是不是对进程和线程有了初步的认识

2016-04-19 18:33:41 2408

转载 iOS的主要常用框架介绍

本文是《Sunvey the Major Framworks》一文的翻译       框架是一个目录,这个目录包含了共享库,访问共享库里代码的头文件,和其它的图片和声音的资源文件。一个共享库定义的方法或函数可以被应用程序调用。       IOS提供了很多你可以在应用程序里调用的框架。要使用一个框架,需要将它添加到你的项目中,你的项目才可以使用它。许多应用程序都使用了如 Found

2016-04-19 11:25:38 710

原创 iOS开发常用术语————API,SDK,IDE和Xcode概念和关系

浅谈编者对iOS API,iOS SDK以及Xcode的区别和联系     对于iOS开发的初学者,我相信很多朋友也会像我一样对一些常会提到的名词并不是很了解,就比如iOS API,iOS SDK,Xcode。这三者到底有什么样的联系呢?首先说API(Application  Programming  Interface)字面翻译是应用程序编程接口,应用程序通过调用操作系统的 AP

2016-04-17 21:08:47 4022

转载 iOS开发代码工具————Github Desktop的简介及初步使用

作为一个github小白,尤其是英文水平比较低,进入github后,满篇英文,实在头疼。 本文教小白如何首次向github中传入代码。1.首先你需要有一个github账户,这是第一步,这里自行创建,不再介绍。 其次,需要下载github desktop(github客户端),在网上随便搜索就能搜到,下载完成后2.登录页面后,首先会看到一个你的主页面。3.然后

2016-04-13 13:38:42 701

转载 关于NSTimer的认识和简单使用

iOS中定时器NSTimer的使用1、初始化+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;+ (NSTimer *)scheduledTimer

2016-04-13 09:03:01 406

原创 内存存储空间简单理解

内存存储空间的简单介绍内存存储空间由:字符常量区、程序代码区、静态存储区、动态存储区。字符常量区:只读,顾名思义存放一些字符常量,即我们在电脑上可以打印出来的字符常量。程序代码区:存放函数体的二进制代码。静态存储区:存放全局变量、静态局部变量、其生存周期:程序开始 --> 程序结束动态存储区:分为栈区和堆区。栈区:存放局部变量、参数值

2016-04-11 14:54:55 816

转载 iOS各层级主要框架介绍

简介iOS四层的主要框架简介看到被面试到的问题简答,很开心,转发学习一下。1.Cocoa Touch层。AddressBookUI使用通讯录的UI框架,以显示联系人的通讯录数据库中的数据。EventKitUI创建的用户界面,用于查看和编辑日历数据与事件套件UI框架。GameKit

2016-04-11 11:38:00 1456

转载 苹果Xcode帮助文档阅读指南

一直想写这么一个东西,长期以来我发现很多初学者的问题在于不掌握学习的方法,所以,Xcode那么好的SDK文档摆在那里,对他们也起不到什么太大的作用。从论坛、微博等等地方看到的初学者提出的问题,也暴露出他们不知道很多他们的疑惑其实在文档里面写的非常清楚。而有时候当他们想从文档去找解决方案的时候,也往往找不到。或者有些人意识到了,阅读文档是学习的好办法,但是不得要领。中国的技术社区有一个很没意

2016-04-07 19:42:36 473

转载 关于程序内存的深度理解

一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量和静

2016-04-06 19:43:13 992

转载 C语言入门基础篇,内存与变量关系

变量与内存变量与内存本文目录一、字节和地址二、变量的存储三、负数的二进制形式四、变量的作用域五、变量的初始化在前面一节中简单介绍了变量的使用,当我们定义一个变量的时候,系统就会为变量分配一块存储空间。而变量的数值在内存中是以二进制的形式存储的,这讲来深入研究变量在内存中的一些存储细节。回到顶部一、字节和地址为了更好地理解变量在内存中的存储细节,先

2016-04-06 19:26:28 1172

原创 iOS学习之UI初级————CGAffineTransform坐标系统变换以及UIView的属性动画

浅谈编者对CGAffineTransform坐标系统变换以及UIView的属性动画的认识和理解坐标系统变换通过transform属性来改变·CGAffineTransformScale //对视图比例缩放 ·CGAffineTransformRotate //对视图做变焦旋转 ·CGAffineTransformTranslate //对视图在原来的位置上做平移

2016-03-30 22:47:35 2607

转载 iOS学习————Objective C内存管理之理解autorelease

做iOS开发也已经有两年的时间,觉得有必要沉下心去整理一些东西了,特别是一些基础的东西,虽然现在有ARC这种东西,但是我一直也没有去用过,个人觉得对内存操作的理解是衡量一个程序员成熟与否的一个标准。好了,闲话不说,下面进入正题。 众所周知,ObjectiveC的内存管理引用的一种叫做“引用计数“ (Reference Count)的操作方式,简单的理解就是系统为每一个创建出来的对象,(这里要注意,

2016-03-30 22:39:18 558

原创 iOS学习之UI初级————UIView的概念属性以及相关方法

浅谈编者对UIView的认识与理解在iPhone上看到的控件大部分是UIView的子类,在屏幕上是一块矩形区域,通常用来处理该区域的绘制和触屏事件。一个view可以作为其他view的父视图,同时决定着这些view的位置和大小,UIView类做了大量的工作去管理这些内部view的关系,同时view也是MVC架构中的View成分。视图层次和子视图管理  除了提供

2016-03-30 21:05:35 659

原创 iOS学习之UI初级————UIWindow

浅谈编者对UIWindow的认识与理解Window在手机屏幕上界面上提供了一个区域来显示APP的界面视图View,也将APP中的事件分发给View。一个应用程序通常情况下只有一个Window。可以通过UIApplication获取当前的keyWindow,keyWindow是用来管理键盘以及非触摸类的消息,并且只能有一个window是keyWin

2016-03-29 23:31:25 714

原创 iOS学习之OC语————对于自定义构造方法的认识与理解

浅谈对于自定义构造方法的认识与理解早先初步学习OC语言的时候,当第一次听说自定义构造方法时并没有特别的感受,只是觉得它只是叫这个名字而已,对于它后面传入的参数以及参数类型只知道要按照那个规则去编写,并不知道为什么要写后面的参数,这跟其他的函数方法确实在形式上存在很大差距。慢慢的发现,自定义构造方法这个名字需要被仔细理解,自定义顾名思义就是程序员自己定义,构造就是如何去创建,如何实现

2016-03-29 22:49:59 1370

原创 关于iPhone尺寸与分辨率

浅谈不同型号iPhone的尺寸与不同的分辨率首先谈谈编者对分辨率这个概念的认知,分辨率与清晰度挂钩,同样尺寸的视图,分辨率越高清晰度越好。另外还要引出一个重要的概念:PPI(pixels per inch)PPI是图像分辨率的单位,图像PPI值越高,画面的细节就越丰富,因为单位面积的像素数量越多,一般PPI>300人眼难以分辨出来。分辨率分为水平和垂直两种,

2016-03-28 23:12:07 1009

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除