自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

heartFlyings的博客

新手上路 多多照顾

  • 博客(39)
  • 收藏
  • 关注

原创 React native 初见

 React Native 是最近非常火的一个话题,介绍如何利用 React Native 进行开发的文章和书籍多如牛毛,但面向入门水平并介绍它工作原理的文章却寥寥无几。 本文分为两个部分:上半部分用通俗的语言解释了相关的名词,重点介绍 React Native 出现的背景和试图解决的问题。适合新手对 React Native 形成初步了解。(事实证明,女票能看懂这段) 下半部分则通过源码(

2016-11-08 15:05:28 720

原创 Python3 我的学习总结

python 3 a = 5 b = 10 a,b = b,a print(a,b) 10 5 Python 只需要一句a,b = b,a 交换两个变量的值,如果其他语言,可能需要 temp = a , a = b, b = temp 至少这三步吧,哪种语言更优雅 基础部分

2016-11-08 15:00:08 1778

原创 Git 常用命令

cd 到修改的模块 cd PAFFAppTheme git status 可查看当前的修改状态 git diff Qidong /PAFFCommonThemeMarco.h 查看你的修改 git add Qidong/PAFFCommonThemeMarco.h 把修改的代码从工作区添加到暂存区 git commit -m ‘[启东][主体颜色][M][C:]修改主题颜色’ 把暂存区的代码

2016-11-08 14:57:19 321

原创 iOS 人脸识别功能

使用 coreimage 可以实现人脸识别功能,并且获取到人脸面部五官的位置。CIContext *context = [[CIContextalloc]init];    CIImage *ciImage = [CIImageimageWithCGImage:_faceImg.CGImage];    NSDictionary *dic = [NSDictio

2016-06-09 22:20:22 1559

原创 UIStackView

UIStackView提供了一个高效的接口用于平铺一行或一列的视图组合。对于嵌入到StackView的视图,你不用再添加自动布局的约束了。Stack View管理这些子视图的布局,并帮你自动布局约束。也就是说,这些子视图能够适应不同的屏幕尺寸。此外,你可以嵌入一个stack View到另一个stack view中来创建更为复杂的用户界面。不要误解我的意思,这并不意味着你就不需要处理自动布局了。你仍

2015-11-15 19:16:16 540

原创 iOS 9 的新特性

2015年9月8日,苹果宣布iOS 9操作系统的正式版在太平洋时间9月16日正式推出,北京时间9月17日凌晨1点推送。新的iOS 9系统比iOS8更稳定,功能更全面,而且还更加开放。iOS 9加入了更多的新功能,包括更加智能的Siri,新加入的省电模式。iOS 9为开发者提供5000个全新的API。iOS9新的特性这对于使用者来说固然是一个好消息,每一次版本更新带来的都是更多的

2015-11-15 19:15:36 511

原创 iOS app 的性能关注点

iOS App的性能关注点虽然iPhone的机能越来越好,但是app的功能也越来越复杂,性能从来都是移动开发的核心关注点之一。我们说一个app性能好,不是简单指感觉运行速度快,而应该是指应用启动快速、UI反馈响应及时、列表滚动操作流畅、内存使用合理,当然更不能随随便便Crash啦。工程师开发应用时除了在设计上要避免性能“坑”的出现,在实际遇到“坑”时也要能很快定位原因所在。定位性能问题原因当然

2015-11-15 18:48:16 593

原创 UIWebView 加载 HTML

首先我们需要让UIWebView加载本地HTML。使用如下代码完成:12345NSString * path = [[NSBundle mainBundle] bundlePath];NSURL * baseURL = [NSURL fileURLWithPath:path];NSString * htmlFile = [[NSBundle mainB

2015-11-15 18:45:11 574

原创 runtime 的一些作用

过去的几年中涌现了大量的Objective-C开发者。有些是从动态语言转过来的,比如Ruby或Python,有些是从强类型语言转过来的,如Java或C#,当然也有直接以Objective-C作为入门语言的。也就是说有很大一部分开发者都没有使用Objective-C太长时间。当你接触一门新语言时,更多地会关注基础知识,如语法和特性等。但通常有一些更高级的,更鲜为人知又有强大功能的特性等待你去开拓。

2015-11-15 18:43:59 526

原创 oc 的runtime

OC的runtimeObjective-c是动态语言,  很多新手或者开发人员常常被Runtime这个东西所迷惑。而恰恰这是一个非常重要的概念。 为什么重要呢!?我可以这么问:“如果让你(设计、)实现一个计算机语言,你要如何下手?” 很少程序员这么思考过。但是这么一问,就会强迫你从更高层次思考(1)以前的问题了。 注意我这句话‘设计’括起来了,稍微次要点,关键是实现。我把实现分成3钟不同的

2015-11-15 18:43:01 381

原创 why block

[1. Why block]Block除了能够定义参数列表、返回类型外,还能够获取被定义时的词法范围内的状态(比如局部变量),并且在一定条件下(比如使用__block变量)能够修改这些状态。此外,这些可修改的状态在相同词法范围内的多个block之间是共享的,即便出了该词法范围(比如栈展开,出了作用域),仍可以继续共享或者修改这些状态。通常来说,block都是一些简短代码片段的封装,适用作工

2015-11-15 18:41:39 451

原创 HTML 5 APP 与原生 APP的差距到底在哪

写过一些纯H5的APP,虽然开发起来的确很快很舒服,但和原生比起来纯H5 APP还是有很多问题,主要聚集在以下几个方面:1、动画动画有很多种,比如侧边栏菜单的滑入滑出、元素的响应动画、页面切换之间的过场等等,在H5之下的众多实现方法都没有办法达到纯原生的性能。一般这些的话有几种不同的选择:css3动画javascript动画原生动画

2015-11-07 20:03:18 1030

原创 iOS 静态库和动态库

使用静态库的好处1,模块化,分工合作2,避免少量改动经常导致大量的重复编译连接3,也可以重用,注意不是共享使用动态库使用有如下好处:1使用动态库,可以将最终可执行文件体积缩小2使用动态库,多个应用程序共享内存中得同一份库文件,节省资源3使用动态库,可以不重新编译连接可执行程序的前提下,更新动态库文件达到更新应用程序的目的。从1可以得出

2015-11-04 11:30:59 402

原创 socket 的用法

Socket就是为网络服务提供的一种机制在Unix中,网络既是Socket,并不局限在TCP/UDP ,Socket可以用于自定义协议,例如:QQ通信的两端都是Socket网络通信其实就是Socket间的通信数据在两个Socket间通过IO传输Socket通讯流程图:socket通信的特点:使用Socket开发网络通讯在Web服务(WebServ

2015-11-03 19:50:28 518

原创 Runloop 与多线程

一.线程概述有些程序是一条直线,起点到终点;有些程序是一个圆,不断循环,直到将它切断。直线的如简单的Hello World,运行打印完,它的生命周期便结束了,像昙花一现那样;圆如操作系统,一直运行直到你关机。 一个运行着的程序就是一个进程或者叫做一个任务,一个进程至少包含一个线程,线程就是程序的执行流。Mac和iOS中的程序启动,创建好一个进程的同时, 一个线程便开始运行,这个线程叫主

2015-11-03 19:41:04 356

原创 悲哀的 ASI ,ASI 与 AFN 的区别

一、底层实现1> AFN的底层基于OC的NSURLConnection和NSURLSession2> ASI的底层基于纯C语言的CFNetwork框架3> ASI的运行性能高于 AFN这里补充一点 ASI 是继承自 NSOperation 二、对服务器返回的数据处理1> ASI没有直接提供对服务器数据处理的方式,直接返回data\st

2015-10-31 11:49:14 479

原创 HTTP 终结者 ASI

一、发送请求的2个对象1.发送GET请求:ASIHttpRequest2.发送POST请求:ASIFormDataRequest* 设置参数// 同一个key只对应1个参数值,适用于普通“单值参数”- (void)setPostValue:(id )value forKey:(NSString *)key// 同一个key(同一个参数名)

2015-10-31 11:42:05 312

原创 AFN

一、2大管理对象1.AFHTTPRequestOperationManager* 对NSURLConnection的封装2.AFHTTPSessionManager* 对NSURLSession的封装二、AFHTTPRequestOperationManager的具体使用1.创建管理者AFHTTPRequestOper

2015-10-31 11:40:52 435

原创 欢迎使用CSDN-markdown编辑器

一、大文件下载 1.方案:利用NSURLConnection和它的代理方法 1> 发送一个请求 // 1.URL NSURL *url = [NSURL URLWithString:@”http://localhost:8080/MJServer/resources/videos.zip“]; // 2.请求 NSURLRequest *request = [NSURLRequest r

2015-10-31 11:39:33 372

原创 http请求

一、一个HTTP请求的基本要素1.请求URL:客户端通过哪个路径找到服务器2.请求参数:客户端发送给服务器的数据* 比如登录时需要发送的用户名和密码3.返回结果:服务器返回给客户端的数据* 一般是JSON数据或者XML数据二、基本的HTTP请求的步骤(移动客户端)1.拼接"请求URL" +"?" + "

2015-10-31 11:37:04 412

原创 OC 的消息转发机制 (新博客 很久不更新啊 忙着找工作)

Objective-C发明于上世纪80年代,Objective-C的作者——Brad Cox和Tom Love,在接触到SmallTalk语言之后,一方面受到SmallTalk的启发,另一方面也是看好C语言有着巨大影响力和广阔前景,因此选择在C语言的基础上引入SmallTalk语言面向对象和消息派发的概念。最初的版本以C语言的扩展的形式实现的,在C编译器中编写支持Objective-C的预处理模块

2015-10-30 08:54:11 529

原创 关于 OC 的self = [super init]详解

众所周知,Objective-C是一门面向对象的语言,一般情况下,我们在Objective-C中定义一个类时,总要提供一个初始化方法,一般大家都是这样写的,通常的初始化就是给一些属性赋一些合理的初值: ?12345678- (MyClass *)init { 

2015-10-05 11:48:08 4197

原创 UIAPPlicationMain() 函数详解 (一个应用程序的启动过程)

UIApplicationMain 函数详解第一个第二个参数不用介绍 来自于 main() 接受的两个参数  在第三个参数中开启一个runloop 所以应用程序就永远在UIApplicationMian里循环,不会退出,随时接受用户的交互事件第三个参数:主要类(principal class),必须是UIApplication或其子类的名字,它代表着当前iPhone程序本身,这个程序会去读

2015-09-30 09:03:39 1476

原创 runloop 详解

RunLoop  相信大家从它的名字就可以看得出来就是一个循环,我感觉想学好一门语言就应该从深层次理解它,以后你学习其他一种语言就会发现,其实语言都是共通的,只要你理解了这种思想,学习起来其他语言机会很容易.不知道大家有没有想过,一个应用程序都是从main 函数开始的,但是oc  main 函数里只有一句代码int main(int argc, char *argv[])     { 

2015-09-28 19:17:55 287

原创 多线程的五种常见死锁问题 (看看你能答对几个)

多线程的死锁问题(五个常见实例教你完全理解死锁问题)环境信息:Mac OS X 10.10.5Xcode 6.2iOS 8.2死锁一直都是在使用多线程时,需要注意的一个问题,并且有时候会造成难以估量的损失,NASA的登月机器人就曾因为优先级反转导致主线程阻塞死锁计算机频繁重启,损失几亿美金。以前对同步、异步,串行、并行只有一个模糊的概念,想想也是

2015-09-28 18:19:54 2603

原创 最全 iOS网络请求 上传下载 断点续传

C/S :客户端/服务器;B/S:数据的传输:服务器端的数据是分成一个个单个的数据包传入客户端;  客户端与服务器做数据传输必须约定使用同一种格式;HTTP:超文本传输协议,浏览器和服务器之间的通信规则;HTTP协议永远都是客户端发送请求,服务器回送响应; HTTP常见的请求方式:1.get请求,是向服务器索取数据的一种请求方式;(例如:获取电影列表

2015-09-22 17:11:11 2953

原创 CoreData 概述

1.Core Data用于做数据持久化,适合大数量的储存和查询;2.Core Data不是数据库,他可以使用数据库、XML等方式来存储数据;3.SQLite通过SQL语句操作数据,CoreData使用面向对象的方式操作数据。使用CoreData操作数据,无需编写任何SQL语句;4.使用时,需要导入CoreData框架;5.优点:可以在Xcode上进行

2015-09-22 09:50:31 400

原创 iOS 网络编程基础

get 请求,将参数直接写在访问路径上.操作简单,不过容易被外界看到,安全性不高,地址最多255字节 get // 1.构造 urlNSString *urlStr = @"https://api.douban.com/v2/movie/us_box";NSURL *url = [NSURL URLWithString:urlStr];// 2. 构造 requestNSMutableURLRe

2015-09-22 09:46:04 397

原创 关于 iOS 程序的内存分析

栈区由系统自动分配和释放 存放局部变量的值等堆区一般是由程序员分配和释放,如果不释放会出现内存泄露.程序退出时系统会会收你的内存.特点是 无序速度慢 容量大静态存储区 全局变量和静态变量都存放在静态区域,当程序结束时系统回收常量区 存放常量的内存区域 程序结束时 系统回收 代码区 存放二进制代码的区域循环引用 对象A retain对象

2015-09-20 20:39:17 421

原创 关于GCD 队列,同步异步的理解

一.队列 所谓队列就是用来存放任务的,使用 GCD 你需要摒弃线程的概念,就像用 autolayout 不需要 设置frame一样 GCD 是面向队列和任务的,不是面向线程的.GCD 会自动将队列中的任务取出放到对应的线程中执行,这里的任务就是某一个 block 片段,就是实现某一功能的代码段;队列有两种:并发队列和串行队列; 队列本身不具备开启新的线程的能力,只是决定执行任务的方式,串行队列任

2015-09-19 11:53:32 1240

原创 多线程 GCD 详解

打开任务管理器总会看到”进程””线程”.用给孩子喂奶这个例子形容多线程还是比较贴切的,当你拿一个奶瓶同时给几个孩子喂奶时,如果你的速度足够快,在几个孩子之间迅速切换,就会做到让几个孩子都能吃上奶,效率也就提高了,多线程也是如此,同一时间, CPU 只能处理一条线程,做一件事情,这显然不能满足我们的需求,多线程并发,其实是 CPU 快速的在多条线程之间切换,如果 CPU 调度线程的时间足够快,就造成了

2015-09-19 09:08:15 476

原创 iOS Qurt2D 绘图详解

绘图1.Quartz 2D ApI 可以实现许多功能,如基于路径的绘图、透明度哦、阴影、颜色管理、反锯齿、PDF文档生成和数据访问;2.Quartz 2D ApI 是Core  Graphics框架(在导入已经导入了)的部分,因此其中的很多数据类型和方法都是以CG开头;  3.Quartz 2D 与分辨率和设备无关,因此在使用Quartz 2D 画图时,无需考虑

2015-09-18 09:53:51 575

原创 进程和线程

一、进程和线程1.什么是进程 进程是指在系统中正在运行的一个应用程序每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内  比如同时打开QQ、Xcode,系统就会分别启动2个进程通过“活动监视器”可以查看Mac系统中所开启的进程 2.什么是线程1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程)线程是进程的基本执行单元,一

2015-09-18 09:51:35 358

原创 关于多态的问题

大家一定都知道OC 的三大特性就是:封装.继承.多态.前面两个自然不用多说,封装就是不把程序暴露在外面,只提供相应的借口提供访问,相应的 setter.getter 方法,还有属性的作用域问题,以及延展也就是私有方法继承就是子类可以继承父类的一些方法和属性,并且可以重写这些方法但是会覆盖父类原来的方法. OC 是单继承的一个子类只能继承自一个父类,且大多数的 OC 类都是继承自 NSObj

2015-09-13 13:32:19 420

原创 iOS 一个应用程序从创建到销毁的过程

大家都知道一个应用程序从应用程序的图标被点击开始就已经启动,那么他是怎么运行的呢首先程序启动创建的第一个对象就是 UIApplication ,然后创建他的代理,在 main 函数 里开启一个事件循环,也可以认为是一个死循环,在这个循环里把时间按先后顺序依次拿出来进行处理,所以这也是 main 函数为什么就一行代码 ,本来应该执行完程序结束,可是程序一直能执行就是这个原因,与之相关的还有 NS

2015-09-12 11:47:26 741

原创 类和对象

类和对象Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一个方法的实现等。这种特性意味着Objective-C不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。对于Objective-C来说,这个运行时系统就像一个操作系统一样:它让所

2015-09-12 11:41:43 764

原创 iOS 8 新特性autoLayout

一、关于自动布局(Autolayout)在Xcode中,自动布局看似是一个很复杂的系统,在真正使用它之前,我也是这么认为的,不过事实并非如此。 我们知道,一款iOS应用,其主要UI组件是由一个个相对独立的可视单元构成,这些可视单元有的主要负责向用户输出有用的信息,有些则负责信息的输入(交互),交互的过程中往往还伴随有动画的效果,已达到整个信息传递的连贯性以及用户体验的细腻感。可视单元,

2015-09-12 11:37:14 467

原创 你所不知道的__ block 内幕

我们知道在Block使用中,Block内部能够读取外部局部变量的值。但我们需要改变这个变量的值时,我们需要给它附加上__block修饰符。__block另外一个比较多的使用场景是,为了避免某些情况下Block循环引用的问题,我们也可以给相应对象加上__block 修饰符。为什么不使用__block就不能在Block内部修改外部的局部变量?我们把以下代码通过 clang

2015-09-11 20:51:57 761

原创 apple is girl

苹果是一年一度,我的日志一周一度,没什么可写,谈谈对苹果的看法吧。首先说态度吧,不崇洋媚外,支持天朝信息产业那是必须的,师夷长技以制夷对吧.说人话那就可以翻译成不傲娇不跪添,虽然粗俗但是都能理解(你要非得装作很单纯,那就鄙视我的粗俗吧)。做开发也很久了,潜水也很久了,一直默默的关注着大牛们的动态,不断学习,充实自己,有望自己有一天也能成为一个别人心目中的大牛.苹果的产品

2015-09-11 14:45:08 401

空空如也

空空如也

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

TA关注的人

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