NSUserDefaults 的默认值

NSUserDefaults 提供了一个与默认设置交互的接口. 这些默认设置允许一个 App 为每一个单独的用户的设置提供定制化的行为. 数据的同步 我们可以通过 NSUserDefaults 对象在运行时从数据库读取用户的数据, 并添加到缓存中. 在我们正常获取或者设置 NSU »

StackOverflow 黑魔法系列 <2>

距离上一次的 StackOverflow 黑魔法系列的 post 已经很久了, 自己也很久没有写技术博客了, 虽然这次带来的又是一篇水文. 但是好久没有写了, 写写水文也好试试手. AutoReleasePool iOS 中的 run loop 等待一些事件的发生并且响应这些实践 »

MagicMove 在 iOS 中的实现

最近由于去武汉参加 hackday, 十多天没有更新博客了. 今天就来说一说, 我在 hackday 上使用 swift 开发 App 遇到的哪些问题吧. 神奇移动 我曾经在很多的 App 中都实现了类似 Keynote 中的神奇移动的效果, 也就是指定当前帧和下一帧中的视图, »

链式语法与 Objective-C

作为一个 Objective-C 语言的使用者已经有近两年的时间了. 在逐渐熟悉手中的工具, Objective-C 语言的同时, 我也开始从更高的角度来观察这一门语言. 虽然至今我也不敢说我精通 Objective-C 和 Cocoa Touch, 但是我对它们也有了一些自己的 »

部署 Node.js+MongoDB App

因为最近在为 SportJoin 写 Web API, 由于对大部分的工作已经完成, 所以开始尝试将 Node 代码部署到服务器上. 我在部署的过程中遇到了很多的问题, 在网上找了很多的教程都完全不详细, 并不能直接解决我的问题, 不过所幸经过自己的尝试和摸索最后还是解决了. 我 »

Shell 编程初探

从开始系统的学习编程到现在已经快有两年了, 我也逐渐从使用 GUI 完成大部分任务转换到使用命令行. 书籍选择 学习一种技术对于我来说还是一件很有意思的事情, 而选择书籍就成为学习技术前所必须的准备工作. 而对于 shell 编程, 书籍的选择其实并不多. Advanced Ba »

DKNightVersion 的实现 --- 如何为 iOS 应用添加夜间模式

最新: 成熟的夜间模式解决方案 注意: 这篇文章已经过时了, 最新版本的 2.3.0 实现已经更改了. 在很多重阅读或者需要在夜间观看的软件其实都会把夜间模式当做一个 App 所需要具备的特性. 而如何在不改变原有的架构, 甚至不改变原有的代码的基础上, 就能为应用优雅地添加夜间 »

使用代码为 Xcode 工程添加文件

这几天在持续更新 DKNightVersion 这个仓库, 我对这个框架投入了很多的时间和精力. 我还是希望把这个框架的方方面面都做好的, 为框架的使用者提供最好的用户体验, 将开发者的使用成本和使用难度降到最低, 提升开发者的使用体验. 但是在我维护这个框架的过程中还是感觉到 »

程序员修炼之道 Tips

这一篇文章其实就是记录程序员修炼之道中的所有 Tips, 我讲会在之后的每周实践两个 Tip, 并对这两个 Tips 进行补充和说明自己的体会, 最终成为书中所说的卓有成效的程序员. Tip 1: Care About Your Craft 关心你的技艺 我其实一直 »

2015 年 4 月总结

又过去了一个月, 到了一个月一次的总结时间. 对于这个月所做的事情, 我只想说计划真的赶不上变化. 本来预计的各种任务到最后都做了别的事情, 但是这个月完成的事情也确实是挺多的. 算法导论 算法导论这本书我在看到第 15 章的时候实在是看不下去了. 书中巨多的数学公式, 简直让我 »

StackOverflow 黑魔法系列 <1>

最近看到了很多关于 iOS 开发的黑魔法, 发现最终的链接都是来自与 stackoverflow, 我感觉需要在 stackoverflow 上这个社区逛一逛, 找一些比较屌神奇的黑魔法来分享一下, 也能够多两篇水文提高一下自己的水平, 当然我会在每一条"咒语"的后面加上原文的链 »

iOS 源代码分析----Masonry

Masonry 是 Objective-C 中用于自动布局的第三方框架, 我们一般使用它来代替冗长, 繁琐的 AutoLayout 代码. Masonry 的使用还是很简洁的: [button mas_makeConstraints:^(MASConstraintMaker * »

关于一些 iOS 面试问题的解答

这篇 post 主要是对知乎上 iOS程序员的问题列表 的回答, 也算是对自己已有的知识进行整理. 如果你对本篇 post 中的回答有所疑问, 可以在下面留言. 如果有问题, 我一定会修改的 :-) 问题以及回答 1. 什么是 ARC? (ARC 是为了解决什么问题而诞生的?) »

Swift 类构造器的使用

这几天在使用 Swift 重写原来的一个运动社交应用 SportJoin. 为什么要重写呢? 首先因为实在找不到设计师给我作图; 其次, 原来写的代码太烂了我也闲不下来, 想找一些项目做, 所以只好将原来的代码重写了. 原来的代码大约是一年半以前写的, 我现在真的不想吐槽当时写 »

我只想安安静静地学 Node.js

这几天没有什么别的事情, 接的几个项目也没有给我 UI 设计图. 最近听说Node.js 这么火优雅, 兴趣也很大, 就来尝试学习一下. 学习 Node.js 的路线图我是在知乎找到的, 请戳这里, 我目前学习 Node.js 的方式就是按照这个得票最高的答主的答案学习的. 现在 »

iOS 为 UIKit 属性增加钩子方法

最近在做一个用于实现夜间模式的开源框架, 需监听 UIKit 中的属性, 而这个监听的通知者就是 UIKit 实例本身, 当我最开始想要做的时候, 我感觉这个东西实在太简单了, 不过之后... KVO 我想到的第一个解决方案是使用 KVO 来解决. KVO 是一个很好的方式来为已 »

iOS 源代码分析----SDWebImage

世人都说阅读源代码对于功力的提升是十分显著的, 但是很多的著名开源框架源代码动辄上万行, 复杂度实在太高, 在暑假的时候我曾经试图读一些开源框架的源代码, 比如说 AFNetworking, SDWebImage, ReactiveCocoa 但是由于当时比较浮躁, 实在没法静下 »

Prolog 列表和运算符 <4>

今天我们在这篇 post 中介绍一下列表和运算符, 相信熟悉或者玩过函数式编程语言的朋友可能已经在函数式编程中掌握了列表, 而今天我带来的是逻辑式编程语言 Prolog 中的列表, 以及它的使用. 当然我还会在今天简单介绍一下 Prolog 中的运算符(Arithmetic). »

FP and OOP

FP 和 OOP 是目前主流的编程范式.我们不谈论这两种编程范式的优劣, 仅仅讨论一下 FP 和OOP 两者的差别. Decomposition 如何将一个任务分解, 这是任何一位Programmer都需要考虑的事情, 而FP和OOP对于如何将一个大型程序或者任务分解有着完全不同 »