<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[走过路过不要错过]]></title><description><![CDATA[人生是一场修行]]></description><link>https://blog.youkuaiyun.com/Void_leng</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Void_leng]]></copyright><item><title><![CDATA[iOS视频捕获进阶篇]]></title><link>https://blog.youkuaiyun.com/Void_leng/article/details/126886740</link><guid>https://blog.youkuaiyun.com/Void_leng/article/details/126886740</guid><author>Void_leng</author><pubDate>Fri, 16 Sep 2022 11:10:29 +0800</pubDate><description><![CDATA[前面【iOS视频捕获实践篇】制作了一个简单拍照和视频录制的相机，事实上，大多数app都有扫码的功能，因此仅仅一个相机是不够的。本篇文章来对前面的相机做一个升级，对拍照界面增人脸检测与追踪的功能。]]></description><category></category></item><item><title><![CDATA[iOS视频捕获实践篇]]></title><link>https://blog.youkuaiyun.com/Void_leng/article/details/126766484</link><guid>https://blog.youkuaiyun.com/Void_leng/article/details/126766484</guid><author>Void_leng</author><pubDate>Thu, 08 Sep 2022 16:03:53 +0800</pubDate><description><![CDATA[这里只是介绍了我们怎么来使用前面介绍的api，如果有需要更高级的相机，还需要去深入挖掘学习AVFoundation中媒体捕获的内容。]]></description><category></category></item><item><title><![CDATA[iOS视频捕获入门篇]]></title><link>https://blog.youkuaiyun.com/Void_leng/article/details/126662932</link><guid>https://blog.youkuaiyun.com/Void_leng/article/details/126662932</guid><author>Void_leng</author><pubDate>Fri, 02 Sep 2022 14:53:39 +0800</pubDate><description><![CDATA[AVFoundation 是 OSX 系统和 iOS 系统中用于处理基于时间的媒体数据的高级框架，AVFoundation的设计过程高度依赖多线程机制，充分利用多核硬件优势，大量使用 Block 和 GCD 机制将运算任务放在子线程，且提供硬件加速确保最佳性能。]]></description><category></category></item><item><title><![CDATA[打造一款自己的XCode]]></title><link>https://blog.youkuaiyun.com/Void_leng/article/details/124401383</link><guid>https://blog.youkuaiyun.com/Void_leng/article/details/124401383</guid><author>Void_leng</author><pubDate>Mon, 25 Apr 2022 11:42:53 +0800</pubDate><description><![CDATA[俗话说磨刀不误砍柴工。如何打造一款属于自己好XCode，我们可以从外观与使用便捷入手。

1. 主题
路径为：Xcode -&gt; Preference -&gt; Themes，看到如下界面。我们点击左下角的加号，可以复制一份配置出来，然后我们自己再重新配置。下面的单词也都很简单。
如：背景色，当前行颜色，选中时背景色，光标颜色，最后一个不是很清楚。
当源代码编辑区配置完成后，同理，我们可以编辑命令行控制区。

最后放一个网站在这里，有一些主题供你选择。XCode 主题
2. 改键
快捷键可以去网上搜.]]></description><category></category></item><item><title><![CDATA[GitHub多账号管理]]></title><link>https://blog.youkuaiyun.com/Void_leng/article/details/124364510</link><guid>https://blog.youkuaiyun.com/Void_leng/article/details/124364510</guid><author>Void_leng</author><pubDate>Sat, 23 Apr 2022 15:53:19 +0800</pubDate><description><![CDATA[如何在一个主机上使用多个github账号？

1. 背景
在工作时，不管是使用gitlab还是公司自己基于git建立的代码托管系统，我们都会拥有一个使用公司邮箱注册一个github账号。但我们总归需要有自己的‘私人空间’，比如自己写一些demo，或者作为云盘等。此时就需要一台电脑管理 2个及以上的github账号。
**注：一定要关注公司的围墙红线，不要将公司相关资产上传至github等公共场所
**注：一定要关注公司的围墙红线，不要将公司相关资产上传至github等公共场所
**注：一定要关注公司的围墙.]]></description><category></category></item><item><title><![CDATA[C++实现设计模式总结]]></title><link>https://blog.youkuaiyun.com/Void_leng/article/details/118000351</link><guid>https://blog.youkuaiyun.com/Void_leng/article/details/118000351</guid><author>Void_leng</author><pubDate>Thu, 17 Jun 2021 20:05:14 +0800</pubDate><description><![CDATA[23中设计模式已经总结完毕，是时候总结一下了。
文章目录1. 系列博文2. 设计模式分类总结3. 设计模式的经验之谈4. 附录

1. 系列博文
【系列博文地址，右击在新标签页中打开链接】
2. 设计模式分类总结
  这里不再是从结构型，行为型，创建型三个类型进行分类，而是从变化与稳定的角度中进行分类，因为变化与稳定是设计模式的最终目的，也是本次系列博文一直在贯彻的。

组件协作：
模板方法__Template Method
策略模式__Strategy
观察者模式__Observer/Event


对.]]></description><category></category></item><item><title><![CDATA[C++实现解析器模式]]></title><link>https://blog.youkuaiyun.com/Void_leng/article/details/117880450</link><guid>https://blog.youkuaiyun.com/Void_leng/article/details/117880450</guid><author>Void_leng</author><pubDate>Mon, 14 Jun 2021 16:43:14 +0800</pubDate><description><![CDATA[第23个设计模式
文章目录


]]></description><category></category></item><item><title><![CDATA[C++实现访问者模式]]></title><link>https://blog.youkuaiyun.com/Void_leng/article/details/117821909</link><guid>https://blog.youkuaiyun.com/Void_leng/article/details/117821909</guid><author>Void_leng</author><pubDate>Mon, 14 Jun 2021 16:17:15 +0800</pubDate><description><![CDATA[文章目录1. 情景与意图2. 访问者模式3. 类的访问4. 大总结

1. 情景与意图
  在一些编程语言中，提供了分类和类扩展这样的语法，分类就是将类按照某一些特定的规则分成分区，这样方便阅读。举个例子，有一个People类，我们可以将该类建立分类，分为student，teacher，employee三个分类。注意分类不是子类，而是一个类建立了分区而已。这样的好处就是，职责清晰，逻辑明了。
  在日常的开发中，我们可能需要对一些类有一些访问的操作，但是我们不希望直接添加到类中，因为这样会破坏原有的封装。.]]></description><category></category></item><item><title><![CDATA[C++实现命令模式]]></title><link>https://blog.youkuaiyun.com/Void_leng/article/details/117753999</link><guid>https://blog.youkuaiyun.com/Void_leng/article/details/117753999</guid><author>Void_leng</author><pubDate>Fri, 11 Jun 2021 16:07:52 +0800</pubDate><description><![CDATA[文章目录1. 情景与意图

1. 情景与意图
  如果学习过Linux操作系统的同学会知道，使用Linux操作系统的同学一般是不会用鼠标点来点去，虽然是带有桌面的，我们通常是使用命令的方式。说到这，如果有对Linux操作系统感兴趣的话，欢迎关注【Linux操作系统学习系列】。

...]]></description><category></category></item><item><title><![CDATA[C++实现职责链模式]]></title><link>https://blog.youkuaiyun.com/Void_leng/article/details/117630378</link><guid>https://blog.youkuaiyun.com/Void_leng/article/details/117630378</guid><author>Void_leng</author><pubDate>Sun, 06 Jun 2021 17:21:19 +0800</pubDate><description><![CDATA[文章目录1. 情景与意图2. 职责链设计模式3. 视图事件的响应链4. 总结

1. 情景与意图
  公司老板在使用你们团队写的app时，发现了一个bug。但是领导不知道这个app是哪个团队在维护，于是领导让逐级向下反馈，最终反馈到了你们的团队，发现时你引入的，于是你开始响应，并修复这个bug。
  在上面的传递中，其实就是一个职责链，修复bug这个反馈，逐级传递，在这个链路上有很多的对象都可以收到，但是只有一个对象可以进行相应。
  对于应用程序也是的，每个视图都是具有层级的，当鼠标或者手指点击事件产生.]]></description><category></category></item><item><title><![CDATA[C++实现迭代器模式]]></title><link>https://blog.youkuaiyun.com/Void_leng/article/details/117608637</link><guid>https://blog.youkuaiyun.com/Void_leng/article/details/117608637</guid><author>Void_leng</author><pubDate>Sun, 06 Jun 2021 00:46:58 +0800</pubDate><description><![CDATA[文章目录1. 情景与意图2. 迭代器模式3. 容器迭代器4. 总结

1. 情景与意图
  在STL的六大组件中，其中一个组件就是 迭代器。可见迭代器的使用场景和作用都是非常大的，在STL的容器中都实现了自己的迭代器。迭代器，顾名思义，就是和为了方便遍历而提供的一中手段，我们对于自己实现的容器或者其他对象，应该怎样设计自己的迭代器呢？——迭代器设计模式。
2. 迭代器模式
  提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。
  就是不暴露对象细节的情境下，提供以恶搞顺序遍历的.]]></description><category></category></item><item><title><![CDATA[C++实现组合模式]]></title><link>https://blog.youkuaiyun.com/Void_leng/article/details/117572822</link><guid>https://blog.youkuaiyun.com/Void_leng/article/details/117572822</guid><author>Void_leng</author><pubDate>Sat, 05 Jun 2021 23:59:48 +0800</pubDate><description><![CDATA[接下来4个模式是非常有趣的设计模式，同属于一个类型。
文章目录1. 情景与意图

1. 情景与意图
  

]]></description><category></category></item><item><title><![CDATA[C++实现备忘录设计模式]]></title><link>https://blog.youkuaiyun.com/Void_leng/article/details/117568572</link><guid>https://blog.youkuaiyun.com/Void_leng/article/details/117568572</guid><author>Void_leng</author><pubDate>Fri, 04 Jun 2021 18:59:18 +0800</pubDate><description><![CDATA[文章目录1. 情景与意图2. 备忘录模式3. 备忘录4. 大总结

1. 情景与意图
  在我们平时打游戏的时候，为了避免任务完成失败重头的悲剧，我们通常会存档，失败后或者退出游戏后，下次进来我们会读档。这就是一个备忘的功能。
  在日常的开发中，我们有时候需要距离对象的某些状态，在对象执行完一些行为后，返回这些状态。应该怎样来设计这样的开发呢？备忘录模式
2. 备忘录模式
  在不破坏封装的前提下，捕获一个对象的内部状态，并在该对象之外保存这个状态，这样可以在以后将对象恢复到原先保存的状态。
  概念不.]]></description><category></category></item><item><title><![CDATA[C++实现状态模式]]></title><link>https://blog.youkuaiyun.com/Void_leng/article/details/117402519</link><guid>https://blog.youkuaiyun.com/Void_leng/article/details/117402519</guid><author>Void_leng</author><pubDate>Fri, 04 Jun 2021 16:49:39 +0800</pubDate><description><![CDATA[下面我们开始一个新的类型系列模型。
文章目录1. 情景与意图2. 状态模式3. 文件的状态4. 总结

1. 情景与意图
  一个对象可以有很多的状态，不同的状态，对象就会有不同的行为。比如文件如果是只读的状态，那么就只能读不能写入，如果是只写的，那就不能读，再或者是读写的。在对象的状态改变时，其可以支持的行为也应该改变。
  如何实现这个设计——状态模式。
2. 状态模式
  允许对象在内部状态发生改变时改变它的行为，对象看起来好像修改了它的类。
  其实就是说，不同状态不同行为切换。行为可以是表现形式.]]></description><category></category></item><item><title><![CDATA[C++实现中介者模式]]></title><link>https://blog.youkuaiyun.com/Void_leng/article/details/117400183</link><guid>https://blog.youkuaiyun.com/Void_leng/article/details/117400183</guid><author>Void_leng</author><pubDate>Sun, 30 May 2021 17:08:23 +0800</pubDate><description><![CDATA[好了，这是这类型设计模式的最后一个，最后一小节进行大总结。
文章目录1. 情景与意图2. 中介者模式3. MVC4. 大总结

1. 情景与意图
  其实看到这个名字，也能对这个设计模式有了一个初步的印象，在我们日常生活中，通常有租房，买房，卖房的需求，这个过程比较漫长和消耗时间，因此我们通常会交给中介去处理，我们不用面对很多人，只用和中介通信即可。
  在我们的工程中，也会存在对象与对象之间存在大量的关联关系，这样势必会导致系统的结构变得很复杂，同时若一个对象发生改变，我们也需要跟踪与之相关联的对象，同.]]></description><category></category></item><item><title><![CDATA[C++实现适配器模式]]></title><link>https://blog.youkuaiyun.com/Void_leng/article/details/117399057</link><guid>https://blog.youkuaiyun.com/Void_leng/article/details/117399057</guid><author>Void_leng</author><pubDate>Sun, 30 May 2021 15:47:10 +0800</pubDate><description><![CDATA[STL中的stack和queue就是典型的适配器
文章目录1. 情景与意图2. 适配器模式3. stack4. 总结

1. 情景与意图
  在我们的日常生活中就有很多的适配器接口，比如mac电脑仅仅提供了两个type-c的接口，但是我们需要连接显示器，或者usb等等，此时就需要一个适配器接口，将type-c接口转换成我们能用的接口。在C++的STL中，我们有时候需要FIFO或者LIFO的数据结构，此时我们将双端队列进行封装成我们想要的stack和queue。
  适配器模式主要解决在软件系统中，常常要将.]]></description><category></category></item><item><title><![CDATA[C++实现代理模式]]></title><link>https://blog.youkuaiyun.com/Void_leng/article/details/116953355</link><guid>https://blog.youkuaiyun.com/Void_leng/article/details/116953355</guid><author>Void_leng</author><pubDate>Thu, 27 May 2021 21:51:56 +0800</pubDate><description><![CDATA[下面带来一个常用的设计模式——代理模式
文章目录1. 情景与意图2. 代理模式

1. 情景与意图
  还记的模板方法模式，有一种说法叫晚绑定。晚绑定其实就是无法预知与后面未知的进行通信，也就是说无法直接访问或者达到某个目的。如果了解UIKit，其中常用的一个UITableView，它主要作用与通讯录列表，好友列表等UI，我们在创建一个这样的UI的时候，它是不知道我们一共有多少联系人，QQ好友等。因此它有一个dataSourceDelegate，就是数据代理，用它来获取数据。
  现实中比如你想买国外的一.]]></description><category></category></item><item><title><![CDATA[KVC实现自定义数据model]]></title><link>https://blog.youkuaiyun.com/Void_leng/article/details/117198555</link><guid>https://blog.youkuaiyun.com/Void_leng/article/details/117198555</guid><author>Void_leng</author><pubDate>Wed, 26 May 2021 15:02:24 +0800</pubDate><description><![CDATA[  从网络数据中拿到json序列化后的数据后，我们需要将数据转换成OC的对象，在项目中会自己建立一个数据model，然后解析拿到的数据。但是每次写解析过程都是无聊枯燥的，因此我们可以使用KVC的方式让其自己解析。这里会说到原生KVC和第三方框架JSONModel。
文章目录1. KVC2. Foundation KVC API

1. KVC
  KVC（Key-value coding）键值编码，就是和键值对有关，用Key去操作value，这个操作就是增删查改等。iOS的开发中，借助runtime机制的.]]></description><category></category></item><item><title><![CDATA[iOS沙盒与数据的转换与处理]]></title><link>https://blog.youkuaiyun.com/Void_leng/article/details/117000522</link><guid>https://blog.youkuaiyun.com/Void_leng/article/details/117000522</guid><author>Void_leng</author><pubDate>Sun, 23 May 2021 12:03:38 +0800</pubDate><description><![CDATA[引言：本篇博文主要介绍iOS文件处理，包括NSData，沙盒，常用文件路径，NSBundle的介绍。
文章目录1. iOS的沙盒机制1.2 沙盒1.2 Bundle Container1. NSData2.

1. iOS的沙盒机制
1.2 沙盒
  苹果公司为了限制对应用程序中系统资源和用户数据的访问，以在应用程序受到损害时控制损害，推出了沙盒机制。
  应用程序沙盒通过限制应用程序对通过授权请求的资源的访问，为系统资源和用户数据提供保护。

再把App SandBox放大：

1.2 Bundle C.]]></description><category></category></item><item><title><![CDATA[C++实现门面模式]]></title><link>https://blog.youkuaiyun.com/Void_leng/article/details/116658948</link><guid>https://blog.youkuaiyun.com/Void_leng/article/details/116658948</guid><author>Void_leng</author><pubDate>Mon, 17 May 2021 22:34:22 +0800</pubDate><description><![CDATA[新的类型，这一类型有 4 种，我们慢慢看。
文章目录情景与意图门面模式

情景与意图
  假设我们要提供一个某一个功能的SDK，比如语音处理相关的，合成，解析等等。在别人使用的时候应该是使用我们提供的接口，而不应该直接使用我们内部的细节方法。
  在日常开发中，总会发生一些组件或者程序的调用方与组件或程序的子模块发生耦合，这样的设计就违法了面向对象的依赖倒置原则与接口隔离原则。
  于是，门面设计模式应运而生。

门面模式
  隐藏系统的复杂性，并向客户端提供了一个客户端可以访问系统的接口。
  

...]]></description><category></category></item></channel></rss>