<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[PeipeiQ的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/PeipeiQ</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; PeipeiQ]]></copyright><item><title><![CDATA[swift 函数式编程tips （二）]]></title><link>https://blog.youkuaiyun.com/PeipeiQ/article/details/81122001</link><guid>https://blog.youkuaiyun.com/PeipeiQ/article/details/81122001</guid><author>PeipeiQ</author><pubDate>Thu, 19 Jul 2018 21:35:12 +0800</pubDate><description><![CDATA[////]]></description><category></category></item><item><title><![CDATA[swift函数式编程Tips （一）]]></title><link>https://blog.youkuaiyun.com/PeipeiQ/article/details/81043289</link><guid>https://blog.youkuaiyun.com/PeipeiQ/article/details/81043289</guid><author>PeipeiQ</author><pubDate>Sat, 14 Jul 2018 22:19:04 +0800</pubDate><description><![CDATA[
  demo链接–&amp;amp;amp;gt;https://github.com/PeipeiQ/MySwift 
  我的个人博客-&amp;amp;amp;gt;http://www.peipeiq.cn 
  最近在公司用swift做开发，也开始关注一些swift的语言风格，所以接下来的博客以swift语言为主。oc或者swift有什么问题可以一起交流。


一、委托模式



1、使用过程

　　协议最常见的用法莫过于进行代理传...]]></description><category></category></item><item><title><![CDATA[node.js+vue的全栈之路一]]></title><link>https://blog.youkuaiyun.com/PeipeiQ/article/details/80837003</link><guid>https://blog.youkuaiyun.com/PeipeiQ/article/details/80837003</guid><author>PeipeiQ</author><pubDate>Thu, 28 Jun 2018 00:38:17 +0800</pubDate><description><![CDATA[
  本文由本作者原创，转载请注明来源。 
  欢迎关注我的GitHub（PeipeiQ）和个人博客（http://www.peipeiq.cn）


　　iOS开发也有一段时间了，object-c代码写多了，写一点别的代码玩玩。这段时间比较空闲，所以自己用node去搭了个博客的后端服务，后台前端是jq+bootstrap，服务端用的是node+mongodb，大前端使用vue全家桶搭建。也算是一...]]></description><category></category></item><item><title><![CDATA[iOS Masonry源码架构解读一]]></title><link>https://blog.youkuaiyun.com/PeipeiQ/article/details/80796289</link><guid>https://blog.youkuaiyun.com/PeipeiQ/article/details/80796289</guid><author>PeipeiQ</author><pubDate>Mon, 25 Jun 2018 00:49:58 +0800</pubDate><description><![CDATA[源码思想解读系列一：Masonry


  本文由本人原创，转载请注明。 
  更多详细代码请移步我的github：PeipeiQ


在网上能够找到很多关于一些热门库的用法和详细解读，所以也就能很容易并且快速的解读其中的原理。

本仓库更专注于这些库中一些ios写法的技巧，以及一些架构思想设计的总结。如果想要从头到位详细了解源码的实现，可以重新查找资料，或者在本仓库的源码中找到 一些关于热门库的...]]></description><category></category></item><item><title><![CDATA[由objectAtIndex引发的数组越界的思考]]></title><link>https://blog.youkuaiyun.com/PeipeiQ/article/details/80707686</link><guid>https://blog.youkuaiyun.com/PeipeiQ/article/details/80707686</guid><author>PeipeiQ</author><pubDate>Fri, 15 Jun 2018 19:06:15 +0800</pubDate><description><![CDATA[一句平常得不能再平常得代码NSArray *array = @[@1,@2,@3];
NSNumber *num = [array objectAtIndex:3];很容易看出，要取出的值已经超过了数组最大长度，出现数组越界的情况。在平常开发中，这种错误还是比较容易定位，但是crash机制还是比较让人头痛，而且如果在项目中多处使用到这个，发生崩溃后也难以一下子找出发生崩溃的数组。所以自然想改造一下...]]></description><category></category></item><item><title><![CDATA[ssh原理以及与https的区别]]></title><link>https://blog.youkuaiyun.com/PeipeiQ/article/details/80702514</link><guid>https://blog.youkuaiyun.com/PeipeiQ/article/details/80702514</guid><author>PeipeiQ</author><pubDate>Fri, 15 Jun 2018 13:24:48 +0800</pubDate><description><![CDATA[最近在使用云服务器的时候使用到了ssh去做登陆验证。关于ssh的使用原理，公钥和密钥如果对服务器的登陆做验证的。以及对称加密和非对称加密的基本原理，这里做一个比较详细的归纳和总结。第一部分是关于ssh的使用以及原理的，这里引用了博主：疲惫的豆豆http://www.cnblogs.com/dzblog/p/6930147.html。这一篇讲得比较通俗易懂。也易于上手操作。一、明白的以下几个概念：k...]]></description><category></category></item><item><title><![CDATA[iOS进阶--block详解]]></title><link>https://blog.youkuaiyun.com/PeipeiQ/article/details/79655123</link><guid>https://blog.youkuaiyun.com/PeipeiQ/article/details/79655123</guid><author>PeipeiQ</author><pubDate>Fri, 23 Mar 2018 11:33:26 +0800</pubDate><description><![CDATA[ios的oc语法底层是基于c语言来实现的，为了更好的了解ios的一些底层的东西，首先我们将oc转成c语言，具体方法如下。打开终端，输入xcodebuild -showsdks可以获取到本地上所装的SDK。接下来cd到你要rewrite的文件的目录下，如果该文件没有依赖第三方库或者framework的话，直接xcrun -sdk iphonesimulator11.2 clang -rewrite-...]]></description><category></category></item><item><title><![CDATA[ios高级动画的简单实现]]></title><link>https://blog.youkuaiyun.com/PeipeiQ/article/details/78836125</link><guid>https://blog.youkuaiyun.com/PeipeiQ/article/details/78836125</guid><author>PeipeiQ</author><pubDate>Mon, 18 Dec 2017 19:15:41 +0800</pubDate><description><![CDATA[详细移步到我的GitHub下载demo。

EasyAnimation

用一行代码写出你想要的动画效果


本封装库抽取了设置动画时常用的属性参数，可以用一句代码快速设置一个或者一组动画效果。如果想要进行更多设置，可以在block里面添加对应的属性，例如重复次数等。

#import "UIView+Animation.h"

将你要使用动画的view执行对应的方法即可。（]]></description><category></category></item><item><title><![CDATA[ios开发关于多线程编程的理解（二）]]></title><link>https://blog.youkuaiyun.com/PeipeiQ/article/details/78796585</link><guid>https://blog.youkuaiyun.com/PeipeiQ/article/details/78796585</guid><author>PeipeiQ</author><pubDate>Wed, 13 Dec 2017 20:46:10 +0800</pubDate><description><![CDATA[Dispatch 
异步执行技术。
何为线程？1个cup执行的cup命令列为一条无分叉路径。



何为多线程？1个cup核执行多条不同路径上的不同命令。



何为多线程编程？程序可以在某个线程和其他线程之间反复多次进行上下文切换。
会出现的问题？
死锁：多个线程相互等待
数据竞争：多个线程同时更新相同资源导致数据不一致。
消耗大量内存等。



多线程编程的]]></description><category></category></item><item><title><![CDATA[ios开发关于多线程编程的理解（一）]]></title><link>https://blog.youkuaiyun.com/PeipeiQ/article/details/78793069</link><guid>https://blog.youkuaiyun.com/PeipeiQ/article/details/78793069</guid><author>PeipeiQ</author><pubDate>Wed, 13 Dec 2017 16:09:30 +0800</pubDate><description><![CDATA[最近在写项目的时候遇到了很多多线程开发运用的情况，当然现在处理线程效率最高的还是属GCD。所以本篇主要讲解GDC的一些机制和个人的理解。
一下内容是转载自http://www.cocoachina.com/ios/20161031/17887.html的文章，作为开头来更好地理解进程，队列，任务之间的关系 。


线程、任务和队列的概念



异步、同步 & 并行、串行的特点
]]></description><category></category></item><item><title><![CDATA[oc预处理和编译的理解]]></title><link>https://blog.youkuaiyun.com/PeipeiQ/article/details/78396834</link><guid>https://blog.youkuaiyun.com/PeipeiQ/article/details/78396834</guid><author>PeipeiQ</author><pubDate>Mon, 30 Oct 2017 20:12:12 +0800</pubDate><description><![CDATA[转载：http://www.cnblogs.com/daiweilai/p/4234336.html

开篇

我们人类创造东西的时候有个词叫做”仿生学“！人类创造什么东西都会模仿自己来创造，所以上帝没有长成树的样子而和人长得一样，科幻片里面外星人也像人一样有眼睛有鼻子……但是人类自己创造的东西如果太像自己，自己又会吓尿(恐怖谷效应)，人类真是奇葩；奇葩的我们在20世纪创造了改变世界的东西]]></description><category></category></item><item><title><![CDATA[ios的内存机制与静态变量，外部全局变量，常量总结]]></title><link>https://blog.youkuaiyun.com/PeipeiQ/article/details/78388092</link><guid>https://blog.youkuaiyun.com/PeipeiQ/article/details/78388092</guid><author>PeipeiQ</author><pubDate>Sun, 29 Oct 2017 21:18:16 +0800</pubDate><description><![CDATA[OC中栈区与堆区的内存概念：


栈区：以下面这个非常简单的c语言程序为例：








变量 i 和 j 就是保存在栈区里的

有一句话如是说：在OC中，默认不带*号的都是保存在栈区的。

在这里，变量名其实就是变量保存在栈区的内存地址的别名。

那么，这个程序运行时在栈区是如何出入的呢？

程序在栈区的出入步骤：

程序运行执行main函数，i首]]></description><category></category></item></channel></rss>