Bloodline's Blog Notes and thoughts from Bloodline

Mac下Sublime Text的配置

        前言 很久以前在Windows下配置过多种插件,后来换了Mac平台有一段时间没用Sublime Text,就没再折腾过了。最近还是回归了Sublime Text,所以趁有空整理下。当然官方文档和官方文档中推荐的非官方文档是最好的资料。 注意:本文没有明确指出的命令和用法都是在Subl...

关于Autolayout和Masonry自动布局的几个坑

        前言 最近遇到一个复杂视图:根控制器里面有上下两个子控制器,子控制器中各自实现类似PageView的视图,然后PageView的每一页是一个WebView,同时中间有个可拖拽的控件,实现上下两个控制器视图的大小调整。采用子控制器的原因是因为防止所有的逻辑代码都混在根控制器中,所以没有使用ni...

ReactiveCocoa简单介绍

        ReactiveCocoa简介 ReactiveCocoa is inspired by functional reactive programming. Rather than using mutable variables which are replaced and modifi...

Swift 4.0 快速参考手册

        前言 马马虎虎过了两遍 Swift,语法还是容易忘,说明还是练得少。为了让练习的时候能够快速适应Swift的风格,根据 raywenderlich 的 Swift 2.0 Cheat Sheet and Quick Reference整理了一份 Swift 快速参考手册。当然不会涉及到详细的...

更新Markdown引擎

        修改kramdown引擎 收到了GitHub Pages的邮件,大概是说,3月1号开始只支持kramdown引擎,代码高亮也要改成Rouge。参考链接:github-pages-now-faster-and-simpler-with-jekyll-3-0 只好再研究下——主要是改为kram...

我的Xcode插件

        还有三天春节放假,实在沉不下心去看RAC,于是用这些零散的时间整理些东西吧。简单记录并介绍我用的Xcode插件。😃 Alcatraz:Xcode插件管理工具。安装完成后重启Xcode即可在”Window”下找到”Package Manager”。OK,enjoy it! PS...

函数式编程原理与简单实现

        前言 函数式编程思想:是把操作尽量写成一系列嵌套的函数或者方法调用。 函数式编程特点:每个方法必须有返回值(本身对象),把函数或者block当做参数(block参数为需要操作的值,block返回值为操作结果)。 函数式编程简单实现计算器 //Calculator.h @interfac...

响应式编程原理及KVO简单实现

        前言 在响应式编程中,不需要考虑调用顺序,只需要知道考虑结果,类似于蝴蝶效应,产生一个事件,会影响很多东西,这些事件像流一样的传播出去,然后影响结果。借用面向对象的一句话,万物皆是流。 响应式编程其实并不复杂,经常用的KVO便是很典型的应用。 KVO实现原理 KVO,即key-value...

链式编程原理及简单实现

        前言 一直在用Masonry,对其链式编程很敢兴趣。于是稍微看了下下其代码的实现。个人理解Masonry的优势主要在于:**能够将视图的约束代码聚集起来,方便代码的阅读与修改**。 链式编程是将多个操作(多行代码)通过点号(.)链接在一起成为一句代码,以增强代码的可读性。核心思想:方法的返...

iOS的Block的内存分配

        前言 本来想整理下Block内存管理的内容,发现这个坑挖大了。 Block的分类 Block 其实也是一个对象,并且在大多数情况下,Block 是分配在栈上面的,只有当 Block 被定义为全局变量或Block 块中没有引用任何 automatic 变量时,Block 才分配在全局数据段...