<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[JeffersonZHabc的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/JeffersonZHabc</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; JeffersonZHabc]]></copyright><item><title><![CDATA[QT for Windows安装配置总结及采坑问题汇总]]></title><link>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/103988450</link><guid>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/103988450</guid><author>JeffersonZHabc</author><pubDate>Wed, 15 Jan 2020 14:08:53 +0800</pubDate><description><![CDATA[QT for Windows安装配置总结及采坑问题汇总一、安装包下载二、安装三、Qt Creator配置四、遇到的问题
一、安装包下载
1.Qt官方下载地址：http://download.qt.io/archive/qt/，选择对应系统的版本进行下载。如：http://download.qt.io/archive/qt/5.13/5.13.0/目录下的qt-opensource-windows-...]]></description><category></category></item><item><title><![CDATA[数据结构与算法--02链表-如何轻松写出链表代码]]></title><link>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/103364189</link><guid>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/103364189</guid><author>JeffersonZHabc</author><pubDate>Tue, 03 Dec 2019 11:38:03 +0800</pubDate><description><![CDATA[数据结构与算法--02链表-如何轻松写出链表代码

写好链表并不是件容易的事情，尤其是一些复杂的链表操作，如链表反转、有序链表合并等等。即使能够写出代码，但及其容易出错。所以付出一定量的精力是前提条件，另外还需要掌握一些必要的技巧。

1.理解指针或引用的含义
  有些语言如C语言，具有指针的概念，而其他语言如Java、Python则使用“引用”来代替指针。但本质上都一样，都是存储所指对象的内存地...]]></description><category></category></item><item><title><![CDATA[数据结构与算法--01数组：为什么大多编程语言中数组从0开始编号？]]></title><link>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/103363936</link><guid>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/103363936</guid><author>JeffersonZHabc</author><pubDate>Tue, 03 Dec 2019 11:23:12 +0800</pubDate><description><![CDATA[数据结构与算法--01数组：为什么很多编程语言中数组从0开始编号？一、数组特性二、数组访问越界问题三、数组与容器四、回到开篇五、总结
一、数组特性
  1.数组本质上是一种线性表数据结构，用一组连续的内存空间来存储一组具有相同类型的数据。除了数组，链表、队列、栈等也是线性表结构。相对线性表的是非线性表，包括二叉树、堆、图等，其结构并不是简单的前后关系。
  2.连续的内存空间和相同类型的数据。
 ...]]></description><category></category></item><item><title><![CDATA[iOS Runtime之——关联对象探索]]></title><link>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/101445113</link><guid>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/101445113</guid><author>JeffersonZHabc</author><pubDate>Thu, 26 Sep 2019 16:06:08 +0800</pubDate><description><![CDATA[二、runtime之——关联对象探索
通过分析runtime源码发现，关联属性并未定义到category_t中，而是定义到AssociationsManager来进行管理的，包括关联属性的添加、获取、移除等操作。定义AssociationsHashMap具体操作关联列表。AssociationsManager通过输入的对象作为地址，取出对象所对应的关联列表，然后通过key值取出关联列表中的关联属性...]]></description><category></category></item><item><title><![CDATA[iOS Runtime之——Category及其底层原理探索]]></title><link>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/101374042</link><guid>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/101374042</guid><author>JeffersonZHabc</author><pubDate>Wed, 25 Sep 2019 17:56:14 +0800</pubDate><description><![CDATA[Category及其底层原理探索1.摘要2.Category特点2.Category真面目3.Category加载逻辑4.Category底层原理探索
1.摘要
  苹果在Objective-C 2.0中推出了新的语言特性Category，为已有类提供新的行为、扩展现有功能。如今Category已经应用到了iOS应用的各个角落。那么本文就对其进行深入剖析，揭开其真实面目。
2.Category特点...]]></description><category></category></item><item><title><![CDATA[基于QGroundControl的RTK数据接收及转发]]></title><link>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/101195257</link><guid>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/101195257</guid><author>JeffersonZHabc</author><pubDate>Mon, 23 Sep 2019 11:10:13 +0800</pubDate><description><![CDATA[基于QGroundControl的RTK数据接收及转发一、相关说明二、开发方案三、数据处理关键流程分析四、总结
一、相关说明

1.地面站：基于QGC编译的Android地面站。
2.需求：RTK接入，地面站接收RTK基准站数据，然后将数据打包通过MavLink转发至飞控。
3.需求目的：为无人机提供RTK高精度定位提供数据支持。
4.基准站数据格式：RTCM数据流。

二、开发方案
  目前海星...]]></description><category></category></item><item><title><![CDATA[无人机高精度定位之——RTK与PPK概念扫盲]]></title><link>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/101059328</link><guid>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/101059328</guid><author>JeffersonZHabc</author><pubDate>Fri, 20 Sep 2019 14:42:12 +0800</pubDate><description><![CDATA[无人机高精度定位之——RTK与PPK概念扫盲

无人机的兴起，已经让很多行业激动不已，如电力巡检、应急救援、测绘、农业植保等行业。而随着高精度卫星导航技术的加持，让无人机定位更加高效、安全、灵活，保证无人机飞行更加平稳。那么下面我们对高精度卫星导航技术相关概念进行简单介绍。


一、RTK
  实时动态差分技术，是利用载波相位实时处理测站点之间观测量的差分方法，将基准站采集的载波相位发送给用户接收...]]></description><category></category></item><item><title><![CDATA[Alamofire-多表单处理]]></title><link>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/100160792</link><guid>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/100160792</guid><author>JeffersonZHabc</author><pubDate>Fri, 30 Aug 2019 16:18:19 +0800</pubDate><description><![CDATA[Alamofire-多表单处理
HTTP请求实质上是对指定数据格式的拼接，然后将拼接后的数据进行传输。下面对多表单数据处理进行分析。
主要完成以下工作：

拼接整合原始数据
encode为stream流
upload网络处理：request-task-resume

首先看应用实例：
func alamofireUploadFile(){
        
        let data = s...]]></description><category></category></item><item><title><![CDATA[Alamofire-Response底层源码分析]]></title><link>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/100159339</link><guid>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/100159339</guid><author>JeffersonZHabc</author><pubDate>Fri, 30 Aug 2019 15:45:09 +0800</pubDate><description><![CDATA[Alamofire-Response底层源码解析1.基础Response2.自定义Response--ResponseSerilize序列化器3.JSON序列化器-JSONSeralizer
1.基础Response
首先我们上应用实例：
let lgResponseSerlize = DataResponseSerializer&lt;String&gt;.init(serializeRespo...]]></description><category></category></item><item><title><![CDATA[Alamofire--Request下-底层分析补充]]></title><link>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/100083245</link><guid>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/100083245</guid><author>JeffersonZHabc</author><pubDate>Mon, 26 Aug 2019 18:12:12 +0800</pubDate><description><![CDATA[Alamofire--Response下-底层分析扩充 1.绑定task与response2.adaptor适配器3.retry重试4.timeline与result
1.绑定task与response
delegate[task] = response

delegate为sessionDelegate类.
任务下发

判断用户是否有实现downloadTaskDidFinishDownload...]]></description><category></category></item><item><title><![CDATA[Alamofire--Request上-底层分析]]></title><link>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/100054334</link><guid>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/100054334</guid><author>JeffersonZHabc</author><pubDate>Sat, 24 Aug 2019 16:57:36 +0800</pubDate><description><![CDATA[今天我们主要分析request底层原理，具体流程是什么？做了哪些工作？

1.Request源码

首先进行Request参数编码encode，使用URLEncoding，encode分别针对post、get请求进行了百分号编码，配置相关属性，调用query函数，最终将uirRequest作为函数返回值返回。



GET
query函数中，调用queryComponents函数进行一系列处理：...]]></description><category></category></item><item><title><![CDATA[Git-软件项目开发中，Git命令行提交代码基本流程]]></title><link>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/100009707</link><guid>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/100009707</guid><author>JeffersonZHabc</author><pubDate>Thu, 22 Aug 2019 10:43:49 +0800</pubDate><description><![CDATA[Git-软件项目开发中，Git命令行提交代码基本流程
一、每次提交前需要先将服务器最新代码pull下来。
1.git stash：当前情况本地代码都是有修改的，所以需要先执行“git stash”保存一份本地修改；
2.git pull：执行“git pull”获取服务器最新代码；
3.git stash pop：执行“git stash pop”将暂存的本地修改恢复。
二、正常提交代码
1.cd...]]></description><category></category></item><item><title><![CDATA[Alamofire--SessionManager解析及后台下载实例]]></title><link>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/99842703</link><guid>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/99842703</guid><author>JeffersonZHabc</author><pubDate>Tue, 20 Aug 2019 14:53:52 +0800</pubDate><description><![CDATA[文章目录一、底层源码分析二、后台下载实例三、扩展
一、底层源码分析
1.SessionManager request初始化
public func request(
    _ url: URLConvertible,
    method: HTTPMethod = .get,
    parameters: Parameters? = nil,
    encoding: ParameterE...]]></description><category></category></item><item><title><![CDATA[RxSwift--高阶函数]]></title><link>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/99657664</link><guid>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/99657664</guid><author>JeffersonZHabc</author><pubDate>Thu, 15 Aug 2019 21:56:09 +0800</pubDate><description><![CDATA[文章目录一、组合类操作符1.startWith2.merge3.zip4.combineLatest5.switchLatest二、映射类操作符1.map2.flatMap &amp; flatMapLatest3.scan三、过滤条件操作符1.filter2.distincUntilChanged3.elementAt4.single5.take6.takeLast7.takeWhile8.t...]]></description><category></category></item><item><title><![CDATA[RxSwift--常见Observable序列的创建]]></title><link>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/99637508</link><guid>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/99637508</guid><author>JeffersonZHabc</author><pubDate>Thu, 15 Aug 2019 15:27:05 +0800</pubDate><description><![CDATA[文章目录常见Observable创建1.empty2.just3.of4.from5.defer6.range7.generate8.timer9.interval10.repeatElement11.error12.never
  本文主要讲解一下常见Observable的创建，这样会对RxSwift应用方面有一个宏观的了解。
常见Observable创建
1.empty
  Returns ...]]></description><category></category></item><item><title><![CDATA[RxSwift--中介者模式]]></title><link>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/99625849</link><guid>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/99625849</guid><author>JeffersonZHabc</author><pubDate>Thu, 15 Aug 2019 11:52:40 +0800</pubDate><description><![CDATA[文章目录一、中介者模式二、应用举例：解决循环引用问题
一、中介者模式
  中介者模式定义了一个中介对象来封装一系列对象之间的交互关系，使各个对象只与中介对象交互，各个对象之间不需要显式地相互引用，降低耦合性，而且可以独立改变他们之间的交互行为。
适用场景：

系统中对象之间存在复杂的引用关系，产生的相互依赖关系混乱且难以理解；
希望通过一个中间类来封装多个类的行为，而不想生成太多的子类；
一个对...]]></description><category></category></item><item><title><![CDATA[RxSwift--销毁者Dispose源码分析]]></title><link>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/98962237</link><guid>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/98962237</guid><author>JeffersonZHabc</author><pubDate>Fri, 09 Aug 2019 16:07:32 +0800</pubDate><description><![CDATA[RxSwift7--销毁者Dispose源码分析1.创建序列2.订阅序列3.总结
这篇我们分析一下RxSwift四大模块之——销毁者，销毁者在RxSwift中具有比较重要的角色，下面我们一步步剖析销毁者的真实面目。
1.创建序列
示例代码1：创建序列
// 1.创建序列
        let ob = Observable&lt;Any&gt;.create { (observer) -&gt;...]]></description><category></category></item><item><title><![CDATA[优快云博客搬家至掘金]]></title><link>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/98665511</link><guid>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/98665511</guid><author>JeffersonZHabc</author><pubDate>Tue, 06 Aug 2019 21:48:16 +0800</pubDate><description><![CDATA[博客搬家说明：

    作为一名程序员，掘金是目前最适合我们的一个平台，所以决定将优快云博客搬迁至掘金！

    优快云是我第一个接触的博客平台，你将成为我最美的回忆，永远爱你！

    掘金博客地址：JeffersonGo。
...]]></description><category></category></item><item><title><![CDATA[RxSwift--Subject底层原理分析及应用]]></title><link>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/98598535</link><guid>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/98598535</guid><author>JeffersonZHabc</author><pubDate>Tue, 06 Aug 2019 14:23:18 +0800</pubDate><description><![CDATA[RxSwift--Subject底层原理分析及应用一、Subject二、Subject分类1.PublishSubject2.BehaviorSubject3.ReplaySubject4.AsyncSubject三、Subject应用
一、Subject
  Subject作为一个代理者，既可以作为Observer，又可以作为Observable。作为Observer，它可以订阅一个或多个Obs...]]></description><category></category></item><item><title><![CDATA[iOS-AppStore上传应用更新之——Xcode上传ipa]]></title><link>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/98466335</link><guid>https://blog.youkuaiyun.com/JeffersonZHabc/article/details/98466335</guid><author>JeffersonZHabc</author><pubDate>Sun, 04 Aug 2019 14:08:18 +0800</pubDate><description><![CDATA[iOS-AppStore上传应用更新之——Xcode上传ipa一、App Store Connect添加新版本配置二、Xcode验证IPA有效性三、生成IPA包，通过xcode直接上传至AppStore四、注意事项
  好久没有打包api上传AppStore了，今天重温一下这个流程。iOS向AppStore更新应用之前一直都是通过Application Loader上传ipa进行更新，本文不再赘述...]]></description><category></category></item></channel></rss>