摘要: 尽管`NSURLConnection`已经不建议使用了,`iOS 7`取而代之的是`NSURLSession`,但是本文依然打算剖析一下,其中一些思想还是值得学习一下,如果您不用`NSURLConnection`,并且也不打算尝试使用,可以跳过本文。 阅读全文
posted @ 2017-07-19 17:37 飞鱼湾 阅读(3172) 评论(0) 推荐(0)
摘要: 蓝牙是一个标准的无线通讯协议,具有设备成本低、传输距离近和功耗低等特点,被广泛的应用在多种场合。蓝牙一般分为传统蓝牙和`BLE`两种模式:传统蓝牙可以传输音频等较大数据量,距离近、功耗相对大;而`BLE`则用来传输节点数据,传输数据量十分小,多数情况处于休眠状态,因而功耗十分低,被广泛的应用于智能穿戴设备。 阅读全文
posted @ 2017-07-19 17:32 飞鱼湾 阅读(3675) 评论(0) 推荐(0)
摘要: 本文讲解`iOS`的远程通知的基本使用,主要包括远程通知的类型,处理远程通知的场景,以及远程通知相关证书的配置等等。 阅读全文
posted @ 2017-07-19 17:23 飞鱼湾 阅读(1140) 评论(0) 推荐(0)
摘要: iOS 10以前的通知比较杂乱,把本地通知和远程通知分开了,诞生了许多功能类似的API,很容易让初学者犯迷糊。而iOS 10的通知把API做了统一,利用独立的UserNotifications.framework框架来管理通知;并且,还增加了撤销单条通知、更新已展示通知、中途修改通知内容等等,以及在通知中展示图片视频,自定义通知UI等一系列新功能;总之,iOS 10的通知功能十分强大。 阅读全文
posted @ 2017-07-19 17:18 飞鱼湾 阅读(1537) 评论(0) 推荐(0)
摘要: 上一篇解读了 的三个重要的类的底层实现,本篇继续。 一、RACMulticastConnection 1.应用 : 用于当一个信号被多次订阅时,为了保证创建信号时,避免多次调用创建信号的block造成副作用,可以使用该类处理,保证创建信号的block执行一次。 2.源码实现 底层原理 创建信号 创建 阅读全文
posted @ 2017-07-19 17:09 飞鱼湾 阅读(365) 评论(0) 推荐(0)
摘要: 本着饮水思源的想法,面对`ReactiveCocoa`的强大功能,按捺不住心中的好奇心,于是走进其源码之中,一探`ReactiveCocoa`的魅力所在。虽然,耳闻其强大功能的核心是:信号,但一直不知道这个信号是如何产生、如何传递,又是如何被处理的。曾经以为信号传递是通知,但是真正读了源码后,才发现之前的想法有多不妥,而人家的实现又是多巧妙。 阅读全文
posted @ 2017-07-19 16:55 飞鱼湾 阅读(710) 评论(0) 推荐(0)
摘要: 上一篇介绍了`ReactiveCocoa`的常用类,已经基本满足项目中的简单应用要求,但是针对复杂的功能还需要其它的类来协同处理。`ReactiveCocoa`提供了强大的流程处理功能来解决复杂的问题,包括事件点击、代理、通知、事件同步和异步等等,可以简化代码体量,实现 **高聚合、低耦合** 的编程思想。 阅读全文
posted @ 2017-07-19 11:26 飞鱼湾 阅读(602) 评论(0) 推荐(0)
摘要: 作为函数式编程和响应式编程的代表`ReactiveCocoa`,自一出世便受到广大码农的热爱,结合`MVVM`编程模式,不仅能够方便的处理各种交互事件、降低模块间的耦合性,还能简化项目结构,降低阅读和维护的成本 阅读全文
posted @ 2017-07-19 11:13 飞鱼湾 阅读(321) 评论(0) 推荐(0)
摘要: `Block`是`iOS`开发中一种比较特殊的数据结构,它可以保存一段代码,在合适的地方再调用,具有语法简介、回调方便、编程思路清晰、执行效率高等优点,受到众多猿猿的喜爱。但是`Block`在使用过程中,如果对`Block`理解不深刻,容易出现`Cycle Retain`的问题。本文主要从`ARC`模式下解析一下`Block`的底层实现,以及`Block`的三种类型(栈、堆、全局)的区别。 阅读全文
posted @ 2017-07-19 10:14 飞鱼湾 阅读(588) 评论(2) 推荐(0)
摘要: 最近几年,函数式编程变得越来越流程,其代码简洁、副作用小、维护成本低等特点,使得许多其它的语言也开始支持函数式编程,比如`Java` 和 `C#`等。本文主要介绍一下函数式编程中的一个重要概念:`Monad`。 阅读全文
posted @ 2017-07-19 10:12 飞鱼湾 阅读(934) 评论(0) 推荐(0)
摘要: `Redis`是一个开源的`key-value`类型的存储系统,大部分数据存在于内存中,所有读写速度十分快。其支持的存储`value`数据类型有多种,如:`strings`、`hashes`、`lists`、`sets`、`sorted sets`等等,这些数据类型都支持`push/pop`、`add/remove`等丰富的操作,并且是原子性的。此外,`redis`还支持周期性的更新数据到磁盘或者追加到记录文件,来实现`master-slave`数据同步的功能。 阅读全文
posted @ 2017-07-19 09:59 飞鱼湾 阅读(1308) 评论(0) 推荐(0)