摘要: 陆陆续续的发表了多篇关于重构的文章了,还是那句话,重构是一个项目迭代开发中必不可少的一个阶段。其实重构伴随着你的项目的整个阶段。在前几篇关于重构的文章中我们谈到了函数的重构、类的重构、数据的重构以及条件表达式的重构,那么今天咱们就来聊聊继承关系的重构。当然还是延续前几篇博客的风格,我们在博客中的代码 阅读全文
posted @ 2016-03-21 09:38 青玉伏案 阅读(3665) 评论(0) 推荐(4) 编辑
摘要: 继续更新有关重构的博客,前三篇是关于类、函数和数据的重构的博客,内容还算比较充实吧。今天继续更新,本篇博客的主题是关于条件表达式的重构规则。有时候在实现比较复杂的业务逻辑时,各种条件各种嵌套。如果处理不好的话,代码看上去会非常的糟糕,而且业务逻辑看上去会非常混乱。今天就通过一些重构规则来对条件表达式 阅读全文
posted @ 2016-03-17 09:42 青玉伏案 阅读(4716) 评论(1) 推荐(4) 编辑
摘要: 在《代码重构(一):函数重构规则(Swift版)》和《代码重构(二):类重构规则(Swift版)》中详细的介绍了函数与类的重构规则。本篇博客延续之前博客的风格,分享一下在Swift语言中是如何对数据进行重构的。对数据重构是很有必要的,因为我们的程序主要是对数据进行处理。如果你的业务逻辑非常复杂,那么 阅读全文
posted @ 2016-03-14 09:48 青玉伏案 阅读(4590) 评论(1) 推荐(4) 编辑
摘要: 在上篇博客《代码重构(一):函数重构规则(Swift版)》中,详细的介绍了函数的重构规则,其中主要包括:Extract Method, Inline Method, Inline Temp, Replace Temp with Query, Introduce Explaining Variable 阅读全文
posted @ 2016-03-07 09:19 青玉伏案 阅读(7100) 评论(4) 推荐(7) 编辑
摘要: 重构是项目做到一定程度后必然要做的事情。代码重构,可以改善既有的代码设计,增强既有工程的可扩充、可维护性。随着项目需求的不断迭代,需求的不断更新,我们在项目中所写的代码也在时时刻刻的在变化之中。在一次新的需求中,你添加了某些功能模块,但这些功能模块有可能在下一次需求中不在适用。或者你因为需求迭代与变 阅读全文
posted @ 2016-03-03 10:27 青玉伏案 阅读(28742) 评论(3) 推荐(22) 编辑
摘要: 在Swift 2.0版本中,Swift语言对其错误处理进行了新的设计,当然了,重新设计后的结果使得该错误处理系统用起来更爽。今天博客的主题就是系统的搞一下Swift中的错误处理,以及看一下Swift中是如何抛出异常的。在编译型语言中,错误一般分为编译错误和运行时错误。我们平时在代码中处理的错误为运行 阅读全文
posted @ 2016-02-26 09:59 青玉伏案 阅读(1847) 评论(4) 推荐(6) 编辑
摘要: 今天是元宵节,祝大家元宵节快乐!在Swift中的数组和字典中下标是非常常见的,数组可以通过索引下标进行元素的查询,字典可以通过键下标来获取相应的值。在使用数组时,一个常见的致命错误就是数组越界。如果在你的应用程序中数组越界了,那么对不起,如果由着程序的性子的话是会崩溃的。为了防止崩溃呢,我们会对集合 阅读全文
posted @ 2016-02-22 09:44 青玉伏案 阅读(9689) 评论(2) 推荐(4) 编辑
摘要: Swift到目前为止仍在更新,每次更新都会推陈出新,一些Swift旧版本中的东西在新Swift中并不适用,而且新版本的Swift会添加新的功能。到目前为止,Swift为2.1版本。去年翻译的Swift书籍是1.0版本,所以上面一些东西并不在适用。虽然Swift语言仍在更新,但是其整体的基础框架已经形 阅读全文
posted @ 2016-01-15 09:28 青玉伏案 阅读(2311) 评论(0) 推荐(6) 编辑
摘要: 有的小伙伴会问:博主,没有Mac怎么学Swift语言呢,我想学Swift,但前提得买个Mac。非也,非也。如果你想了解或者初步学习Swift语言的话,你可以登录这个网站:http://swiftstub.com/。该网站可以在线运行出代码结果,也可以说这是一个在线的Playground。你可以... 阅读全文
posted @ 2016-01-06 09:42 青玉伏案 阅读(1616) 评论(4) 推荐(3) 编辑
摘要: 协议与委托代理回调在之前的博客中也是经常提到和用到的在《Objective-C中的委托(代理)模式》和《iOS开发之窥探UICollectionViewController(四) --一款功能强大的自定义瀑布流》等博客内容中都用到的Delegate回调。说到协议,在Objective-C中也是有... 阅读全文
posted @ 2015-12-22 09:30 青玉伏案 阅读(8440) 评论(6) 推荐(6) 编辑
摘要: 上一篇博客《窥探Swift之别具一格的Struct和Class》的博客可谓是给Swift中的类开了个头。关于类的内容还有很多,今天就来搞一下类中的继承以及类的访问权限。说到类的继承,接触过面向对象编程(OOP)的小伙伴并不陌生,继承就是OOP编程中几大特征之一,所以还是有必要把类的继承拎出来聊聊... 阅读全文
posted @ 2015-12-17 18:19 青玉伏案 阅读(1986) 评论(3) 推荐(2) 编辑
摘要: 说到结构体和类,还是那句话,只要是接触过编程的小伙伴们对这两者并不陌生。但在Swift中的Struct和Class也有着令人眼前一亮的特性。Struct的功能变得更为强大,Class变的更为灵活。Struct中不仅可以定义属性,并且还可以在其中定义函数,这一点比较像Class的特性了。不过Str... 阅读全文
posted @ 2015-12-16 10:11 青玉伏案 阅读(4774) 评论(0) 推荐(5) 编辑
摘要: 之前初识Swift中的Switch语句时,真的是让人眼前一亮,Swift中Switch语句有好多特有而且特好用的功能。说到Switch, 只要是写过程序的小伙伴对Switch并不陌生。其在程序中的出镜率还是比较高档。Switch属于程序的分支语句,Switch的功能便于处理多个分支的较为复杂点的... 阅读全文
posted @ 2015-12-14 09:58 青玉伏案 阅读(6483) 评论(3) 推荐(3) 编辑
摘要: 说到数组和字典,只要是编过程的小伙伴并不陌生。在Swift中的数组与字典也有着一些让人眼前一亮的特性,今天的博客就来窥探一下Swift中的Array和Dictionary。还是沿袭之前的风格,在介绍Swift中的数组时,我们会对比一下ObjC中的数组和字典,因为ObjC也是iOS开发的主要语言不是。 阅读全文
posted @ 2015-12-11 10:00 青玉伏案 阅读(5587) 评论(0) 推荐(4) 编辑
摘要: 为什么要写今天这篇博客那就说来话长了,那是在一个大雪纷飞的冬天……然后……。好了,不扯淡了,直接进入今天的主题吧,这篇博客是关于iOS自定义组件的东西。一些UI效果看起来似乎是这个样子,其实本质不是这个样子。在做一些UI效果时我们可以利用视错觉的一些东西,让用户看到的是一个东西,其实你实现的又是一个 阅读全文
posted @ 2015-12-01 10:35 青玉伏案 阅读(12145) 评论(35) 推荐(37) 编辑
摘要: 今天的博客算是比较基础的,还是那句话,基础这东西在什么时候都是最重要的。说到函数,只要是写过程序就肯定知道函数是怎么回事,今天就来讨论一下Swift中的函数的特性以及Swift中的闭包。今天的一些小实例中回类比一下Objective-C中的函数的写法等等。Swift中的函数还是有许多好用的特性的,比 阅读全文
posted @ 2015-11-24 09:37 青玉伏案 阅读(9895) 评论(0) 推荐(6) 编辑
摘要: 之前更新了一段时间有关Swift语言的博客,连续更新了有6、7篇的样子。期间间更新了一些iOS开发中SQLite、CollectionViewController以及ReactiveCocoa的一些东西。时隔两月,还得继续更新Swift语言的东西不是。在去年翻译《Swift编程入门经典》(Swi... 阅读全文
posted @ 2015-11-18 10:25 青玉伏案 阅读(2292) 评论(0) 推荐(2) 编辑
摘要: 最近工作比较忙,但还是出来更新博客了,今天给大家分享一些ReactiveCocoa以及MVVM的一些东西,干活还是比较足的。在之前发表过一篇博文,名字叫做《iOS开发之浅谈MVVM的架构设计与团队协作》,大体上讲的就是使用Block回调的方式实现MVVM的。在写上篇文章时也知道有ReactiveCo 阅读全文
posted @ 2015-11-09 09:19 青玉伏案 阅读(14102) 评论(16) 推荐(17) 编辑
摘要: Spotlight在iOS9上做了一些新的改进, 也就是开放了一些新的API, 通过Core Spotlight Framework你可以在你的app中集成Spotlight。集成Spotlight的App可以在Spotlight中搜索App的内容,并且通过内容打开相关页面。因为接到开发任务,老... 阅读全文
posted @ 2015-10-19 07:44 青玉伏案 阅读(2610) 评论(1) 推荐(4) 编辑
摘要: 本篇博客应该算的上CollectionView的高级应用了,从iOS开发之窥探UICollectionViewController(一)到今天的(五),可谓是由浅入深的窥探了一下UICollectionView的用法,这些用法不仅包括SDK中自带的流式布局(UICollectionViewDeleg 阅读全文
posted @ 2015-10-15 09:49 青玉伏案 阅读(2802) 评论(1) 推荐(4) 编辑
摘要: 在上一篇博客中《iOS开发之窥探UICollectionViewController(三) --使用UICollectionView自定义瀑布流》,自定义瀑布流的列数,Cell的外边距,Cell的最大以及最小高度是在我们的布局文件中是写死的,换句话说也就是不可配置的。为了循序渐进,由浅入深呢,上篇博 阅读全文
posted @ 2015-10-08 09:45 青玉伏案 阅读(2696) 评论(3) 推荐(2) 编辑
摘要: 上篇博客的实例是自带的UICollectionViewDelegateFlowLayout布局基础上来做的Demo, 详情请看《iOS开发之窥探UICollectionViewController(二) --详解CollectionView各种回调》。UICollectionView之所以强大,是因 阅读全文
posted @ 2015-10-01 09:34 青玉伏案 阅读(5009) 评论(11) 推荐(4) 编辑
摘要: UICollectionView的布局是可以自己定义的,在这篇博客中先在上篇博客的基础上进行扩充,我们先使用UICollectionViewFlowLayout,然后好好的介绍一下UICollectionView的一些回调方法,主要包括UICollectionViewDataSource,UICol 阅读全文
posted @ 2015-09-29 10:57 青玉伏案 阅读(8845) 评论(9) 推荐(3) 编辑
摘要: 之前用CollectionViewController只是皮毛,一些iOS从入门到精通的书上也是泛泛而谈。这几天好好的搞了搞苹果的开发文档上CollectionViewController的内容,亲身体验了一下CollectionViewController的强大,之前一直认为CollectionV 阅读全文
posted @ 2015-09-28 11:08 青玉伏案 阅读(5225) 评论(2) 推荐(3) 编辑
摘要: 本篇博客就使用前面操作SQLite的知识来实现如何去插入,删除和更新数据。然后再把操作SQlite数据库常用的方法进行一个封装。把常用方法进行封装后,把Cars数据库中的其中一个表的数据进行查询,并在UITableView上进行展示。因为本实例要对数据库的数据进行modify(修改)操作 ,在i... 阅读全文
posted @ 2015-09-23 11:22 青玉伏案 阅读(1450) 评论(0) 推荐(3) 编辑
摘要: 数据库的在上一篇博客中《SQLite之C语言接口规范(三)——Binding Values To Prepared Statements》用到了如何从查询结果中取出结果值。今天的博客就详细的介绍一下sqlite3_column_*()的方法。在SQLite数据库C语言接口中,从查询结果中取出不同类型 阅读全文
posted @ 2015-09-21 10:17 青玉伏案 阅读(1559) 评论(0) 推荐(3) 编辑
摘要: 在前面的博客中已经介绍了如何连接SQLite数据库,并且简单的查询和遍历结果集。在前面用到了sqlite3_stmt *stmt,也就是预编译后的SQL语句。在本篇博客中会了解一下sqlite3_stmt,然后了解一下变量的绑定。变量绑定,简单的说就是往预编译后的SQL语句中传入相应的值。 一. s 阅读全文
posted @ 2015-09-18 09:54 青玉伏案 阅读(3388) 评论(0) 推荐(3) 编辑
摘要: 在《SQLite的C语言接口规范(一)》中介绍了如何去连接打开数据库,本篇博客就介绍如何操作数据库,本篇主要给出了如何执行数据库查询语句(Select), 然后遍历结果集。本篇博客就直接使用上一篇博客封装的打开数据库的方法获取到数据库的操作句柄,然后通过这个句柄来操作我们的Sqlite数据库。今... 阅读全文
posted @ 2015-09-14 09:58 青玉伏案 阅读(1603) 评论(2) 推荐(2) 编辑
摘要: 为什么要搞一搞SQLite的C语言接口规范呢? 因为在做iOS开发中难免会遇到操作数据库的情况,你可以使用第三方的FMDB等,或者使用CoreData。但我们还是有必要去搞清楚如何去使用SQLite的C语言接口来操作SQLite数据库的。从今天开始就给大家结合实例详细的搞一搞SQLite的C语言... 阅读全文
posted @ 2015-09-10 09:22 青玉伏案 阅读(2316) 评论(1) 推荐(2) 编辑
摘要: 在上篇博客中iOS开发之多图片无缝滚动组件封装与使用给出了图片无限轮播的实现方案之一,下面在给出另一种解决方案。今天博客中要说的就是在ScrollView上贴两个ImageView, 把ImageView进行交替切换来实现图片的无限轮播,在轮播时去修改ImageView上的图片。上一篇博客中是有... 阅读全文
posted @ 2015-09-06 09:31 青玉伏案 阅读(4258) 评论(7) 推荐(3) 编辑
摘要: 经常有园友会问"博主,有没有图片无限滚动的Demo呀?", 正儿八经的图片滚动的Demo我这儿还真没有,今天呢就封装一个可以在项目中直接使用的图片轮播。没看过其他iOS图片无限轮播的代码,也不了解他们的原理,我今天封装这个图片无限轮播是借鉴Web前端中的做法,因为之前写Web前端的时候,实现幻灯... 阅读全文
posted @ 2015-08-25 10:26 青玉伏案 阅读(3422) 评论(7) 推荐(5) 编辑
摘要: 之前总结过Objective-C中的字符串《Objective-C精选字符串处理方法》,学习一门新语言怎么能少的了字符串呢。Swift中的String和Objective-C语言中NSString还是区别不小的,Swift中的String又回归了正常状态,使用起来更为方便快捷。本篇博客的主题就是Sw 阅读全文
posted @ 2015-08-21 09:29 青玉伏案 阅读(2626) 评论(3) 推荐(5) 编辑
摘要: 想必写过程序的童鞋对枚举类型并不陌生吧,使用枚举类型的好处是多多的,在这儿就不做过多的赘述了。Fundation框架和UIKit中的枚举更是数不胜数,枚举可以使你的代码更易阅读并且可以提高可维护性。在Swift语言中的枚举可谓是让人眼前一亮。在Swift中的枚举不仅保留了大部分编程语言中枚举的特... 阅读全文
posted @ 2015-08-18 09:03 青玉伏案 阅读(2127) 评论(1) 推荐(2) 编辑
摘要: 今天的博客中就总结一下关于Swift中相对Objc新添加的两个数据类型:元组(Tuple)和可选值类型(Optional)。上面这两个类型是Swift独有的类型,使用起来也是非常方便的,今天就通过一些示例来介绍一下如何初始化和使用元组和可选值类型以及使用元组和可选值类型的场景。废话少说,直奔主题... 阅读全文
posted @ 2015-08-16 10:29 青玉伏案 阅读(982) 评论(0) 推荐(3) 编辑
摘要: 在公司做项目一直使用Storyboard,虽然有时会遇到团队合作的Storyboard冲突问题,但是对于Storyboard开发效率之高还是比较划算的。在之前的博客中也提到过,团队合作使用Storyboard时,避免冲突有效的解决方法是负责UI开发的同事最好每人维护一个Storyboard, 公... 阅读全文
posted @ 2015-08-11 09:24 青玉伏案 阅读(2791) 评论(9) 推荐(4) 编辑
摘要: 在上篇博客《iOS开发之使用Runtime给Model类赋值》中介绍了如何使用运行时在实体类的基类中添加给实体类的属性赋值的方法,这个方法的前提是字典的Key必须和实体类的Property Name相同,然后通过运行时来生成和执行Setter方法给Model类的属性赋值。 通过Runtime来... 阅读全文
posted @ 2015-08-01 10:58 青玉伏案 阅读(10420) 评论(6) 推荐(3) 编辑
摘要: 本篇博客算是给网络缓存打个基础吧,本篇博客先给出简单也是最容易使用的把字典转成实体类的方法,然后在给出如何使用Runtime来给Model实体类赋值。本篇博客会介绍一部分,主要是字典的key与Model的属性名相同时,使用Runtime来进行赋值,下篇博客会给出字典key的值和Model的名字不... 阅读全文
posted @ 2015-07-24 09:27 青玉伏案 阅读(4344) 评论(8) 推荐(3) 编辑
摘要: 前几天发布了一篇iOS开发之多表视图滑动切换示例(仿"头条"客户端)的博客,之所以写这篇博客,是因为一位iOS初学者提了一个问题,简单的写了个demo做了个示范,让其在基础上做扩展和改进。被CocoaChina中iOS模块所收录实在出乎我的意料,链接地址(http://www.cocoachina. 阅读全文
posted @ 2015-07-07 09:56 青玉伏案 阅读(6038) 评论(14) 推荐(4) 编辑
摘要: 好长时间没为大家带来iOS开发干货的东西了,今天给大家分享一个头条新闻客户端各个类别进行切换的一个示例。在Demo中对所需的组件进行的简单封装,在封装的组件中使用的是纯代码的形式,如果想要在项目中进行使用,稍微进行修改即可。 废话少说,先介绍一下功能点,下图是整个Demo的功能点,最上面左边的... 阅读全文
posted @ 2015-07-01 09:13 青玉伏案 阅读(7757) 评论(8) 推荐(5) 编辑
摘要: 在C++中也是少不了对内存的管理,在C++中只要有new的地方,在写代码的时候都要想着delete。 new分配的时堆内存,在函数结束的时候不会自动释放,如果不delete我分配的堆内存,则会造成内存泄露。所以我们要学会内存管理,不要内存泄露。在C++中的内存管理机制和OC中的还不太一样,在... 阅读全文
posted @ 2015-06-22 20:05 青玉伏案 阅读(1967) 评论(2) 推荐(1) 编辑