CoderHann

coderHann’s blog


  • 首页

  • 关于

  • 归档

  • 标签
CoderHann

自动布局SnapKit VS VFL

发表于 2017-06-25 | 分类于 iOS | | 阅读次数

前言

之前我们画UI都是使用frame计算对控件布局的,随着iPhone尺寸的多样化,苹果自己也推出了各种各样的布局方式:Autoresizing、aotulayout,VFL。我们开发也逐渐的转向自动布局,aotulayout在xib上布局还是用的挺好,但是对于不用xib的同学来说只能选择VFL进行代码布局了,但是了解VFL的同学都知道其格式复杂、问题不好找,关键不是所有的同学都会VFL你写的代码别人也不好维护了。后来有个第三方框架Masonry出现了感觉拯救了使用代码自动布局的同学们。由于本章项目基于Swift语言的,所以我们使用的是SnapKit框架(Masonry的Swift版本)。本章主要通过实例演练一个UI布局来对比下代码编程中VFL和SnapKit到底哪个用的爽,并不对其进行详细讲解,需要了解他们用法的童鞋可以到github上看文档或者去网上搜索自己想要的资料。

阅读全文 »
CoderHann

心之所向,持之以恒

发表于 2017-06-20 | 分类于 随笔 | | 阅读次数

我是今年过完年(2017年初)才有写技术、生活博客的习惯,写博客的初衷就是想把自己平时工作中的开发技能分享出来,给遇到相同问题的童鞋提供一点线索。毕竟工作了几年有一定的开发经验,而且身边的很多同事也有自己的博客,所以自己也就加入到博客大军中。后来写了几篇博客之后对博客有了更深入的了解:当你想写一篇博客时(一般是自己有一定见解的内容),往往会通过官方文档或者比较优秀的文章来补充自己在这个知识模块中认识的不足,以便完成这个模块内的体系结构,而这个过程其实就是一个学习的过程。当你对该模块知识整体把握后就可以通过”演示例子“+”说明“+”整体总结“将博客写下来,按照学习金字塔的概念这个过程是大脑的主动学习将会加深知识的记忆。在写博客之前我学习的方式也很简单,通常是通过代码写个demo把新知识功能演示下来,然后就没有然后了,并没有对该知识进行总结,这其实并不利于以后对知识的复习也没有训练自己的表达能力。所以写博客除了能分享技术给别人看之外,其本身就是集学习、总结、复习于一身的自我提升!

阅读全文 »
CoderHann

双向链表的实现

发表于 2017-06-14 | 分类于 内功修炼 , 数据结构 | | 阅读次数

双链表简介


双链表的结构如上,跟单链表相比只是增加了结点的向前引用,下面简单过一下相关双链表的构成元素:
结点:构成双链表的基本单元,每个结点都有一个data区和两个结点指向区。data区就是存放数据的地方,一般存储基本类型数据或者引用对象的地址,两个结点previous,next分别指向前一个结点地址和下一个结点的地址。
头结点:首结点,指向双链表中的第一个结点。
尾结点:指向双链表中的最后一个结点。
链表长度:记录链表中存在的结点个数,即我们存储的数据个数。

阅读全文 »
CoderHann

内功修炼系列索引

发表于 2017-06-06 | 分类于 内功修炼 | | 阅读次数

概述

“内功修炼”系列博客将主要围绕数据结构、算法相关内容进行简单的原理剖析以及代码实现。该系列博客主要记录自己平时对基本功的积累,并通过图片+文字说明+代码的形式展示给有兴趣的读者,让读者能够比较容易的了解相关内容。除此之外本系列示例代码也是一个亮点,将用不同的语言进行编写,并上传至github开源项目基础知识。目前编写的语言有Objective-c、Swift、Java以供不同平台的开发同学学习借鉴。在博客讲解中使用其中的一种语言进行详细介绍,其它语言的代码放到相关内容的总结后面。

阅读全文 »
CoderHann

单向链表的实现

发表于 2017-06-02 | 分类于 内功修炼 , 数据结构 | | 阅读次数

单链表简介


单链表的结构如上,有别于连续存储在内存中的数组,是一种以链式形式的存储结构。下面详细介绍下该链表中存在的元素:
结点:构成单向链表的基本单元我们称为结点,其中每个结点都有一个data区和一个结点指向区。data区就是存放数据的地方,一般存储基本类型数据或者引用对象的地址,结点指向区存储下一个结点的地址。
头结点:指向单链表中的第一个结点,即首结点。
尾结点:指向单链表中的最后一个结点。
链表长度:记录链表中存在的结点个数,即我们存储的数据个数。

阅读全文 »
CoderHann

Java实用小技术持续更新

发表于 2017-05-04 | 分类于 Java | | 阅读次数


该博客记录有关日常开发中所遇到的Java相关的问题以及解决方法,文章以问题相关的Java模块进行分类并形成索引,读者可以通过前面的索引到达自己所需要关注的模块!

阅读全文 »
CoderHann

发布开源框架到CocoaPods图文详解

发表于 2017-04-27 | 分类于 iOS | | 阅读次数

前言

最近项目不是特别紧,有时间看看github写写demo。每次写demo的时候总是需要用到有些基础工具和控件,每次都把需要的工具类移来移去麻烦又没什么技术含量。心生想法把那些好用的工具类放到CocoaPods,下次直接pod导入,这样也知道如何发布自己的开源框架了!

经过各种引擎的搜索、查阅前辈提供的技术支持以及自己的动手总于把自己的工具类框架发到了CocoaPods。这里记录完整的操作过程给自己以后查阅也给需要的同事提供一些参考。

阅读全文 »
CoderHann

iOS多线程的使用总结

发表于 2017-04-15 | 分类于 iOS | | 阅读次数

多线程简介

进程:进程是描述一个程序的执行过程,是应用程序的一个实例(一个应用程序或软件可以有多个进程)。它是操作系统分配资源的基本单元,即拥有自己的地址空间、存储空间。
线程:线程是操作系统独立运行和独立调度的基本单位,可以理解为程序执行过程中的子过程,这个子过程可是并行也可串行(一个进程至少有一个线程)。
多线程:多线程是一种用来提高CPU运行效率的一种技术,往往提现为一个进程中分配了不止一条线程在执行任务,而是多条线程并发执行。

上面以自己的理解对进程、线程和多线程概念的概括,需要详细了解相关知识的请自行Google、百度进行查阅。本文主要是以自己对多线程的理解进行梳理,如果有不对的地方请及时联系我更正。

阅读全文 »
CoderHann

block那些事儿

发表于 2017-04-05 | 分类于 iOS | | 阅读次数

block简介

block我们经常称之为代码块语法,是Objective-C对闭包的实现,如果你不知道闭包的概念可以参考百科,用于代码块的存储并在适当场景执行保存的代码。正是由于block能够存储代码以及捕获变量的特点,在开发中实现回调就变得特别的简单。通常应用场景如:事件监听回调、网络异步回调等等,在提供简单回调的同时也将业务代码变得更加的独立、灵活。但是如果你不是很了解block的用法的话可能造成一些逻辑上的错判或者比较严重的问题如循环引用,本章着重讲述block的基本使用以及开发中要避免的一些问题。

阅读全文 »
CoderHann

DataPersistence For iOS

发表于 2017-03-26 | 分类于 iOS | | 阅读次数

概述

Q: 数据持久化是什么?
A: 数据持久化简单的说就是将APP生成、接收到的数据从内存上写入到硬盘、U盘等外部永久性存储设备上,以便应用重启后能继续使用这些数据。

Q: 数据持久化的作用以及常用的形式是什么?
A: 由于APP运行在内存中,这种存储器在断电时将丢失其存储的内容。数据持久化通常将内存中的数据以文件,数据库的形式写入到硬盘等断电不丢失数据的存储设备上,这样在应用重启后能够读到持久化也就是断电前的数据,以及恢复软件的状态,继续之前的工作。

阅读全文 »
12
CoderHann

CoderHann

运气就是机会碰巧撞到了你的努力!

11 日志
5 分类
5 标签
GitHub Weibo
© 2022 CoderHann
由 Hexo 强力驱动
主题 - NexT.Pisces