摘要:上篇博客《iOS可视化动态绘制八种排序过程》可视化了一下一些排序的过程,本篇博客就来聊聊图的东西。在之前的博客中详细的讲过图的相关内容,比如《图的物理存储结构与深搜、广搜》。当然之前写的程序是比较抽象的。上篇博客我们以可视化的方式看了一下各种排序的过程,今天博客中我们就来可视化的看一下图的相关部分, 阅读全文
posted @ 2016-12-29 09:13 青玉伏案 阅读 (3407) 评论 (9) 编辑
摘要:前面几篇博客都是关于排序的,在之前陆陆续续发布的博客中,我们先后介绍了冒泡排序、选择排序、插入排序、希尔排序、堆排序、归并排序以及快速排序。俗话说的好,做事儿要善始善终,本篇博客就算是对之前那几篇博客的总结了。而本篇博客的示例Demo也是在之前那些博客Demo的基础上做的,也算是集成了各种排序的方法 阅读全文
posted @ 2016-12-23 09:28 青玉伏案 阅读 (3102) 评论 (10) 编辑
摘要:之前发表过一篇关于视错觉的文章:《视错觉:从一个看似简单的自定义控件说起》,虽然不是用iOS开发中的Mask来实现的,但是原理和Mask原理是一样的,相当于手动给上面一层加了个Mask。当然用mask完全可以实现上篇博客中的效果,无论是使用Mask还是不使用Mask,都是利用了视错觉,都是两层不一样 阅读全文
posted @ 2016-08-10 09:14 青玉伏案 阅读 (5658) 评论 (4) 编辑
摘要:Masonry是iOS在控件布局中经常使用的一个轻量级框架,Masonry让NSLayoutConstraint使用起来更为简洁。Masonry简化了NSLayoutConstraint的使用方式,让我们可以以链式的方式为我们的控件指定约束。本篇博客的主题不是教你如何去使用Masonry框架的,而是 阅读全文
posted @ 2016-07-11 09:48 青玉伏案 阅读 (9395) 评论 (7) 编辑
摘要:Swift3.0相关代码已在github上更新。之前关于iOS开发多线程的内容发布过一篇博客,其中介绍了NSThread、操作队列以及GCD,介绍的不够深入。今天就以GCD为主题来全面的总结一下GCD的使用方式。GCD的历史以及好处在此就不做过多的赘述了。本篇博客会通过一系列的实例来好好的总结一下G 阅读全文
posted @ 2016-07-04 10:30 青玉伏案 阅读 (5853) 评论 (2) 编辑
摘要:为什么要写今天这篇博客那就说来话长了,那是在一个大雪纷飞的冬天……然后……。好了,不扯淡了,直接进入今天的主题吧,这篇博客是关于iOS自定义组件的东西。一些UI效果看起来似乎是这个样子,其实本质不是这个样子。在做一些UI效果时我们可以利用视错觉的一些东西,让用户看到的是一个东西,其实你实现的又是一个 阅读全文
posted @ 2015-12-01 10:35 青玉伏案 阅读 (10186) 评论 (35) 编辑
摘要:用redux有一段时间了,感觉还是有必要把其相关的知识点系统的总结一下的,毕竟好记性不如烂笔头。上篇博客更新了关于《ES6中的迭代器、Generator函数以及Generator函数的异步操作》的内容,该内容时saga的基础,稍后会总结saga相关知识点。循序渐进,本篇博客主要总结的是Redux相关 阅读全文
posted @ 2019-09-23 10:01 青玉伏案 阅读 (208) 评论 (0) 编辑
摘要:最近在写RN相关的东西,其中涉及到了redux-saga ,saga的实现原理就是ES6中的Generator函数,而Generator函数又和迭代器有着密不可分的关系。所以本篇博客先学习总结了iterator相关的东西,然后又介绍了Generator相关的内容,最后介绍了使用Generator进行 阅读全文
posted @ 2019-05-12 10:29 青玉伏案 阅读 (321) 评论 (0) 编辑
摘要:上篇博客我们聊了RN中关于Timing的动画,详情请参见于《ReactNative之结合具体示例来看RN中的的Timing动画》本篇博客我们将从一个“拉皮条”的一个动画说起,然后来看一下RN中Spring动画的使用方式以及具体效果。Spring从名字中不难看出是弹性弹簧的意思,也就是我们可以使用Sp 阅读全文
posted @ 2018-12-20 10:11 青玉伏案 阅读 (707) 评论 (0) 编辑
摘要:今天继续更新RN相关的博客。上篇博客详细的聊了RN中关于Flex布局的相关东西,具体请参见《ReactNative之参照具体示例来看RN中的FlexBox布局》。本篇博客继续更新RN的动画部分,博客中的内容依然是依托于具体的示例来进行的。 下方是官网对RN动画的的一个综述,意思就是说在RN的组件中V 阅读全文
posted @ 2018-12-04 01:15 青玉伏案 阅读 (1368) 评论 (0) 编辑
摘要:今天是重阳节,祝大家节日快乐,今天继续更新RN相关的博客。上篇博客《ReactNative之从HelloWorld中看环境搭建、组件封装、Props及State》中我们通过一个HelloWorld的一个示例介绍了RN的环境搭建、组件封装、Props以及States。经过这么多天,今天我们继续来看RN 阅读全文
posted @ 2018-10-17 10:09 青玉伏案 阅读 (2100) 评论 (1) 编辑
摘要:开篇呢,先给大家问个好,今天是中秋节,祝大家中秋节快乐!!虽然是中秋节,但是木有回家还是总结一下知识点写写博客吧,想着昨天总结一下的,但是昨天和几个同学小聚了一下,酒逢知己总是千杯少呢,喝的微醺不适合写东西,所以就留到今天总结了。因为这段时间在工作中陆陆续续的接触到了一些RN开发的东西,还是需要总结 阅读全文
posted @ 2018-09-24 11:22 青玉伏案 阅读 (1951) 评论 (5) 编辑
摘要:今天博客的内容比较简单,就是看一下虾米音乐首页中频道选择的一个动画效果的实现。之前用mask写过另外一种Tab切换的一种效果,网易云音乐里边的一种Tab切换效果,详情请移步于"视错觉:从一个看似简单的自定义控件说起"。,下面会对效果进行分析,并且根据自己的理解去实现一个类似的频道选择切换效果。代码会 阅读全文
posted @ 2018-08-28 09:19 青玉伏案 阅读 (1260) 评论 (0) 编辑
摘要:上篇博客详细的聊了CocoaPods的相关内容,今天我们就来介绍另一个Cocoa的包管理器Carthage。在上家公司用Swift开发工程时,用的就是Carthage。Carthage诞生于14年11月份,是用Swift语言开发的,相对于CocoaPods来说是一个新生事物。本篇博客主要介绍一下Ca 阅读全文
posted @ 2018-07-17 10:07 青玉伏案 阅读 (768) 评论 (0) 编辑
摘要:CocoaPods在Cocoa开发日常工作中经常用到的包管理器,即依赖管理工具。有的项目也有用Carthage的,Carthage是一个比较新的依赖管理工具,是使用Swift语言开发的。Carthage在上家公司的一个项目中实践过一些,用着也挺方便。本篇博客就先系统的了解一下CocoaPods的使用 阅读全文
posted @ 2018-05-28 09:34 青玉伏案 阅读 (3459) 评论 (3) 编辑
摘要:前几篇博客陆陆续续的讲了好多关于Git操作的内容, 其中在上篇博客聊了《Git中的merge、rebase、cherry-pick以及交互式rebase》,本篇博客仍然也不例外,不过本篇博客的主题是关于git的远程操作的。依照之前博客的风格,我们依然依托于LearningGitBranch中的相关内 阅读全文
posted @ 2018-03-14 09:13 青玉伏案 阅读 (1437) 评论 (1) 编辑
摘要:上篇博客聊了《git分支管理之rebase 以及 cherry-pick相关操作》本篇博客我们就以Learning Git中的关卡进行展开。下方列举了LearningGit中的 merge、rebase、reset、revert、cherry-pick 以及交互式rebase相关关卡的操作以及对应的 阅读全文
posted @ 2018-02-09 09:43 青玉伏案 阅读 (33775) 评论 (1) 编辑
摘要:上篇博客聊了《Git知识总览(三) 分支的创建、删除、切换、合并以及冲突解决》,本篇博客我们主要来看一下 rebase 变基相关的操作。rebase 操作和 merge 操作最终都可以达到合并代码的效果,不过其对分支的影响不同。上篇博客中我们聊到了 merge操作。简单的说merge操作就是将两个c 阅读全文
posted @ 2018-02-02 08:47 青玉伏案 阅读 (6066) 评论 (2) 编辑
摘要:前两篇博客集中的聊了git的一些常用命令,具体请参见《Git知识总览(一) 从 git clone 和 git status 谈起》、《Git知识总览(二) git常用命令概览》。本篇博客主要涉及了在git版本管理中的分支的创建、切换以及合并。并且罗列了在merge分支使发生冲突时的解决方式。同时还 阅读全文
posted @ 2018-01-19 09:22 青玉伏案 阅读 (13131) 评论 (1) 编辑
摘要:上篇博客我们从 git clone 和 git status 两个命令开始,引出了一系列的git操作命令, 请参见:《Git知识总览(一) 从 git clone 和 git status 谈起》。上篇博客中所涉及的git命令也是git命令操作中常用的基础操作命令,本篇博客继续来总结一下git使用时 阅读全文
posted @ 2018-01-10 09:25 青玉伏案 阅读 (3417) 评论 (4) 编辑
摘要:本篇博客是整理git相关知识的第一篇,因为之前一直是用SourceTree对Git的命令行操作用的不是特别熟,于是乎过了一遍ProGit(链接:https://git-scm.com/book/zh/v1)。本篇博客以及后边的将要发的几篇博客是对之前看ProGit时的笔记的整理。当然在整理时,根据具 阅读全文
posted @ 2018-01-04 08:42 青玉伏案 阅读 (21847) 评论 (3) 编辑
摘要:如题,今天的博客我们就来记录一下iOS开发中使用MachPort来实现线程间的通信,然后使用该知识点来转发子线程中所发出的Notification。简单的说,MachPort的工作方式其实是将NSMachPort的对象添加到一个线程所对应的RunLoop中,并给NSMachPort对象设置相应的代理 阅读全文
posted @ 2017-12-21 07:59 青玉伏案 阅读 (1006) 评论 (3) 编辑
摘要:今天博客的内容就系统的讨论一下Masonry对FSP的影响,以及如何更好的使用Masonry。如果你对iOS开发足够熟悉的话,那么对Masonry框架应该不陌生。简单的说,Masonry的诞生让AutoLayout的使用更为优雅,让控件的布局更为方便。使用辩证的观点来看一个事物的话,凡事都有两面性, 阅读全文
posted @ 2017-11-16 09:46 青玉伏案 阅读 (2046) 评论 (6) 编辑
摘要:本篇博客的内容也不算太复杂,算是AutoLayout的一些高级的用法。本篇博客我们主要通过一些示例来看一下AutoLayout中的Content Hugging Priority以及Content Compression Resistance Priority这两个优先级。下方我们先来简单的看一下这 阅读全文
posted @ 2017-10-16 09:27 青玉伏案 阅读 (5967) 评论 (2) 编辑
摘要:最近工作比较忙,但是还是出来更新博客了。今天博客中所涉及的内容并不复杂,都是一些平时常见的一些问题,通过这篇博客算是对UITableView中使用定时器的几种方式进行总结。本篇博客会给出在TableView中使用NSTimer或者DispatchSourcer中常见的五种方式。当然下方第一种方式是常 阅读全文
posted @ 2017-09-21 09:20 青玉伏案 阅读 (3069) 评论 (2) 编辑
摘要:前两篇博客我们分别聊了ReactiveSwift框架中的负责标记对象的生命周期的类Lifetime以及负责原子性操作的Atomic类的具体代码实现。前两篇博客之所以聊Lifetime以及Atomic的代码实现,就是为了今天这篇博客做铺垫的。在Property以及MutableProperty的代码实 阅读全文
posted @ 2017-08-28 09:53 青玉伏案 阅读 (682) 评论 (0) 编辑
摘要:本篇博客我们来聊一下ReactiveSwift中的原子性操作,在此内容上我们简单的聊一下Posix互斥锁以及递归锁的概念以及使用场景。然后再聊一下Atomic的代码实现。Atomic主要负责多线程下的原子操作,负责共享资源的同步一致性。而在Atomic中就是使用到了Posix互斥锁和递归锁。在聊上述 阅读全文
posted @ 2017-08-18 09:32 青玉伏案 阅读 (386) 评论 (0) 编辑
摘要:为了之后博客的进行,本篇博客我们就来聊一下ReactiveSwift框架中的Lifetime类的具体实现。从Lifetime这个名字中我们就这道,就是生命周期。在ReactiveSwift中使用Lifetime来标记一个对象的生命周期,其实主要功能还是将对象的deinit()析构函数通过发送信号量将 阅读全文
posted @ 2017-08-08 09:38 青玉伏案 阅读 (643) 评论 (1) 编辑
摘要:上篇博客我们聊完SignalProducer结构体的基本实现后,我们接下来就聊一下SignalProducerProtocol延展中的start和lift系列方法。SignalProducer结构体的方法扩展与Signal的扩展相同,都是面向协议的扩展。首先创建了一个SignalProducerPr 阅读全文
posted @ 2017-07-26 10:06 青玉伏案 阅读 (1954) 评论 (0) 编辑
摘要:在前面几篇博客中我们详细的聊了ReactiveSwift中的Bag、Event、Observer以及Signal的使用方式和代码实现。那么在接下来的这几篇博客中,我们就依附于之前博客的基础上来聊一聊SignalProducer的用法以及内部的代码实现。从SignalProducer的名字中,我们容易 阅读全文
posted @ 2017-07-20 09:45 青玉伏案 阅读 (746) 评论 (0) 编辑
摘要:本篇博客我们就来聊一下combineLatest()的使用以及具体的实现方式。在之前的《iOS开发之ReactiveCocoa下的MVVM》的博客中我们已经聊过combineLatest()的用法,虽然是使用老版本的ReactiveCocoa和Objective-C语言介绍的,不过使用原理上都是一致 阅读全文
posted @ 2017-07-13 09:33 青玉伏案 阅读 (2520) 评论 (1) 编辑
摘要:上篇博客我们聊了observe()、map()、filter()延展函数的具体实现方式以及使用方式。我们在之前的博客中已经聊过,Signal的主要功能是位于SignalProtocol的协议延展中的,而且延展函数是非常的多的。今天博客中我们继续来聊SignalProtocol中那些比较核心的延展实现 阅读全文
posted @ 2017-07-10 09:39 青玉伏案 阅读 (606) 评论 (0) 编辑
摘要:上篇博客我们对Signal的基本实现以及Signal的面向协议扩展进行了介绍, 详细内容请移步于《Signal中的静态属性静态方法以及面向协议扩展》。并且聊了Signal的所有的g功能扩展都是放在Signal所实现的SignalProtocol协议的扩展中的。本篇博客就沿袭上篇博客的内容,我们来聊一 阅读全文
posted @ 2017-07-05 09:24 青玉伏案 阅读 (634) 评论 (2) 编辑
摘要:上篇博客我们聊了Signal的几种状态、Signal与Observer的关联方式以及Signal是如何向关联的Observer发送事件的。本篇博客继续上篇博客的内容,来聊一下Signal类中静态的never和empty计算属性以及pipe()静态方法。然后再聊聊Signal中的面向协议编程中的面向协 阅读全文
posted @ 2017-07-01 06:45 青玉伏案 阅读 (433) 评论 (0) 编辑
摘要:上篇博客我们详细的聊了ReactiveSwift源码中的Bag容器,详情请参见《ReactiveSwift源码解析之Bag容器》。本篇博客我们就来聊一下信号量,也就是Signal的的几种状态以及Signal的基本实现。当然本篇博客所解析的源码会用到上篇博客介绍的Bag容器。本篇博客我们先通过一个示例 阅读全文
posted @ 2017-06-27 09:26 青玉伏案 阅读 (884) 评论 (0) 编辑
摘要:今天博客我接着上篇博客的内容来,上篇博客我们详细的看了ReactiveSwift中的Observer已经Event的代码实现。接下来我们来看一下ReactiveSwift中的结构体Bag的实现。Bag:袋子,顾明思议,就是用来装东西的,我们暂且将Bag称之为容器。在ReactiveSwift中的Ba 阅读全文
posted @ 2017-06-21 09:32 青玉伏案 阅读 (698) 评论 (0) 编辑
摘要:ReactiveCocoa这个框架是做什么用的本篇博客就不做过多赘述了,什么是“响应式编程”也不多聊了,自行Google吧。本篇博客的主题是解析ReactiveCocoa框架中的核心模块ReactiveSwift中的两个核心类的实现,也就是对Event和Observer这两个类进行解析。之所以把这两 阅读全文
posted @ 2017-06-19 10:36 青玉伏案 阅读 (1561) 评论 (1) 编辑
摘要:上篇博客我们聊了《资讯类App常用分类控件的封装与实现(CollectionView+Swift3.0)》,今天的这篇博客就在上篇博客的基础上做些东西。做一个完整的资讯类App中的分类展示、分类切换、分类编辑这一套东西。当然,主要我们还是使用灵活多变的CollectionView来实现。下方我们将会 阅读全文
posted @ 2017-06-15 09:57 青玉伏案 阅读 (2073) 评论 (0) 编辑
摘要:今天博客中,我们就来实现一下一些常用资讯类App中常用的分类选择的控件的封装。本篇博客中没有使用到什么新的技术点,如果非得说用到了什么新的技术点的话,那么勉强的说,用到了一些iOS9以后UICollectionView添加的一些新的特性。本篇博客所涉及的技术点主要有UICollectionView的 阅读全文
posted @ 2017-06-13 10:35 青玉伏案 阅读 (1824) 评论 (0) 编辑
摘要:在我们写Java代码时,大部分情况下是不用关心你New的对象是否被释放掉,或者什么时候被释放掉。因为JVM中有垃圾自动回收机制。在之前的博客中我们聊过Objective-C中的MRC(手动引用计数)以及ARC(自动引用计数)的内存管理方式,下方会对其进行回顾。而目前的JVM的内存回收机制则不是使用的 阅读全文
posted @ 2017-06-02 09:43 青玉伏案 阅读 (6133) 评论 (9) 编辑
摘要:“注解”这个词,可谓是在Java编程中出镜率比较高,而且也是一个老生常谈的话题。我们之前在聊Spring相关的东西时,注解是无处不在,之前我们简单的聊过一些“注解”的相关内容,比如在Spring中是如何进行“注解”组合的。因为注解在Java编程中还是比较重要的,所以我们今天的博客就把注解的东西给系统 阅读全文
posted @ 2017-05-26 09:19 青玉伏案 阅读 (3765) 评论 (1) 编辑
摘要:最近一直在看Java的相关东西,因为我们在iOS开发是,无论是Objective-C还是Swift中,经常会用到委托代理回调,以及Block回调或者说是闭包回调。接下来我们就来看看Java语言中是如何实现委托代理回调以及闭包回调的。当然这两个技术点虽然实现起来并不困难,但是,这回调在封装一些公用组件 阅读全文
posted @ 2017-05-22 09:53 青玉伏案 阅读 (2362) 评论 (2) 编辑
摘要:上篇博客我们聊了《JavaEE开发之SpringBoot整合MyBatis以及Thymeleaf模板引擎》,并且在之前我们也聊了《Swift3.0服务端开发(五) 记事本的开发(iOS端+服务端)》,在之前的案例中的服务端是我们使用了Swift3.0下的Perfect框架来实现的,本篇博客我们就用S 阅读全文
posted @ 2017-05-12 10:07 青玉伏案 阅读 (1615) 评论 (0) 编辑
摘要:上篇博客我们聊了《JavaEE开发之SpringBoot工程的创建、运行与配置》,从上篇博客的内容我们不难看出SpringBoot的便捷。本篇博客我们继续在上篇博客的基础上来看一下SpringBoot是如何引入和使用MyBatis和Thymeleaf的。在之前的博客中我们提到过Hibernate,今 阅读全文
posted @ 2017-05-08 09:55 青玉伏案 阅读 (5886) 评论 (3) 编辑
摘要:本篇博客我们就来聊一下如何使用Eclipse+STS插件来创建Spring Boot的工程。Spring Boot可以使我们更容易的使用Spring框架,在Spring Boot中自动配置了好多东西,这就给我们省了不少事儿。今天我们就来创建一个Spring Boot工程,然后在该工程上创建一个测试的 阅读全文
posted @ 2017-05-03 09:52 青玉伏案 阅读 (1241) 评论 (0) 编辑
摘要:上篇博客我们详细的聊了《JavaEE开发之SpringMVC中的静态资源映射及服务器推送技术》,本篇博客依然是JavaEE开发中的内容,我们就来聊一下SpringMVC中的自定义消息转发器(HttpMessageConverter)和SpringMVC中的文件上传。消息转发器在日常开发中是比较常用的 阅读全文
posted @ 2017-04-28 09:51 青玉伏案 阅读 (1922) 评论 (2) 编辑