07 2017 档案

摘要:`Hadoop`是一个由`Apache`基金会开发的分布式系统架构,简称`HDFS`,具有高容错性、可伸缩性等特点,并且可以部署在低配置的硬件上;同时,提供了高吞吐量的数据访问性能,适用于超大数据集的应用程序,以及通过集群拓扑高效快速的处理数据的能力。 阅读全文
posted @ 2017-07-24 16:12 飞鱼湾 阅读(4707) 评论(0) 推荐(1)
摘要:最近遇到了一个问题,就是在`UIWebView`的代理方法里,执行`document.title`的`js`代码无法获取网页标题 阅读全文
posted @ 2017-07-21 14:27 飞鱼湾 阅读(595) 评论(0) 推荐(0)
摘要:今天来讲讲`iOS`开发过程中的阴影绘制及其潜在的绘图性能问题。虽然在开发过程中,我们使用阴影功能的机会不是很多,但是如果用了,有可能引起如卡顿等性能问题,所以,还是有必要来探究一下阴影的绘制过程,及如何提高阴影的绘制性能。 阅读全文
posted @ 2017-07-21 14:24 飞鱼湾 阅读(4983) 评论(0) 推荐(0)
摘要:今天来介绍一个小工具`ccache`,其可以提高`xcode`的编译速度。说起缘由,是因为我的苹果电脑配置比较低,而每次开发调试或测试打包都需要编译工程,虽然项目工程代码量不算大,但是编译的时间还是很长,尤其是修改了头文件或者`Archive`打包时,看着进度条像蜗牛在爬一样,心里都有小动物在奔腾...... 阅读全文
posted @ 2017-07-21 14:15 飞鱼湾 阅读(10256) 评论(1) 推荐(0)
摘要:在开发`iOS`应用程序的过程中,经常需要根据不同的需求,切换到不同的项目配置,或者打不同的包(测试环境、开发环境、生产环境等等),如果每次都是手动配置,一则比较麻烦,二则容易配置错,那么有没有更好的方案来解决这个问题呢?答案是:有的。我们可以根据不同的需求,创建不同的`target`,在不同需求要切换配置或打包时,直接选择对应的`target`完成工作,从而提高我们的开发效率。 阅读全文
posted @ 2017-07-21 12:15 飞鱼湾 阅读(2265) 评论(0) 推荐(0)
摘要:`iOS`开发过程中,有一类的错误会经常遇到,就是找不到所调用的方法,当然这类问题比较好解决,给当前对象或其父类对象添加该方法即可,使得编译器在编译时能正确找到该方法;或者,还有另外的方法,由于`Objective-C`是一门动态语言,我们也可以在运行期再给类添加该方法,一样可以解决该问题,而这就涉及了类的消息转发机制。 阅读全文
posted @ 2017-07-21 09:58 飞鱼湾 阅读(6981) 评论(0) 推荐(0)
摘要:在开发`iOS`的客户端应用时,经常需要从服务器下载图片,虽然系统提供了下载工具:NSData、NSURLSession等等方法,但是考虑到图片下载过程中,需要考虑的因素比较多,比如:异步下载、图片缓存、错误处理、编码解码等,以及实际需要中根据不同网络加载不同画质的图片等等需求,因此下载操作不是一个简单的下载动作就可以解决。 阅读全文
posted @ 2017-07-21 09:52 飞鱼湾 阅读(852) 评论(0) 推荐(0)
摘要:最近为了新的存管`app`上线,忙了近一个月,重新过了一段`996`的日子,今天终于可以喘口气,继续更新博客了。本文记录一下在`iOS 9`中发送`https`请求遇到的问题及解决办法,希望通过本文,可以对`ATS `的配置有一个更深入的了解。 阅读全文
posted @ 2017-07-21 09:49 飞鱼湾 阅读(5896) 评论(0) 推荐(0)
摘要:在`iOS`开发过程中,我们经常需要用到`等同性`来判断两个对象是否相等,通常我们会使用`==`来判断,但是这样比较出来的结果可能不是我们期望的;所以,一般我们会使用`NSObject`协议声明的`isEqual`方法来判断对象的`等同性`。并且,为了更好的进行深层次的比较,iOS系统中的`NSObject`子类还实现了各自的`isEqual:`方法。 阅读全文
posted @ 2017-07-21 09:46 飞鱼湾 阅读(469) 评论(0) 推荐(0)
摘要:`AFNetworking`基本是苹果开发中网络请求库的标配,它是一个轻量级的网络库,专门针对`iOS`和`OS X`的网络应用设计,具有模块化的架构和丰富的`APIs`接口,功能强大并且使用简单,深受苹果应用开发人员的喜爱。 阅读全文
posted @ 2017-07-21 09:44 飞鱼湾 阅读(363) 评论(0) 推荐(0)
摘要:最近研究了一下项目的组件化,把`casa`、`bang`、`limboy`的有关组件化的博客看了一遍,学到了不少东西,对目前业界的组件化方案有了一定的了解。这些高质量的博客大致讨论了组件化的三种方案:`url-block`、`protocol-class`(和`url-controller`类似)、`target-action`,以及应用这三种组件化方案的时机、步骤、利弊等等。 阅读全文
posted @ 2017-07-21 09:38 飞鱼湾 阅读(22419) 评论(2) 推荐(0)
摘要:前天晚上看`casa`直播`项目的组件化`,不仅了解了如何快速对现有项目进行组件化,以及进一步不断迭代,实现完全组件化的过程;同时,也被`casa`的`vim`技能的熟练程度所震撼。早就听说,`vim`是`unix`系统上文本编辑的神器,亦有许多牛人用`vim`编程可以键字如飞,效率之高令人望尘莫及。也许我们成不了牛人,但是学会`vim`还是很有必要的,毕竟它确实能够提高文本的编辑效率。 阅读全文
posted @ 2017-07-20 13:54 飞鱼湾 阅读(544) 评论(0) 推荐(0)
摘要:iOS开发中经常会用到数据和模型的互相转换,大致有两种转换方式:1.手动写转换的代码,2.利用开源库进行转换。常用的开源库有:`JSONModel`、`Mantle`、`MJExtension`、`YYModel`等等,本文主要介绍一下`MJExtension`的底层实现,看一看小码哥如何设计这个轻量级的数模转换框架。 阅读全文
posted @ 2017-07-20 11:59 飞鱼湾 阅读(3946) 评论(0) 推荐(0)
摘要:正则表达式是是计算机科学的一个概念,使用单个字符串来描述,用来检索、替换符合某个模式的文本。许多程序设计语言都支持利用正则表达式进行字符串的操作,比传统的搜索更加快速和灵活。下面进入正则表达式的介绍,及部分简单的示例。 阅读全文
posted @ 2017-07-20 11:36 飞鱼湾 阅读(169) 评论(0) 推荐(0)
摘要:`HTTP`协议工作于`C/S`架构上,是万维网服务器传输超文本到本地客户端的一种应用层协议,全称是:`Hyper Text Transfer Protocol`(超文本传输协议),`HTTP`是基于`TCP/IP`通信协议来传递数据的。`HTTP`于`1990`年被提出,由于其简洁性、快速性等特点,被广泛应用,并且经过不断的完善和发展,功能也越来越强大,目前已经发展到`HTTP/2`版本。 阅读全文
posted @ 2017-07-20 10:15 飞鱼湾 阅读(573) 评论(0) 推荐(0)
摘要:年前升级了`Cocoapods`库,从`0.39`升级到了`1.2.0-beta`版,然后用模拟器和真机测试都是没有问题的,均可以成功编译。今天测试人员要测试包,准备`archive`打包时,却提示:`ld: library not found for -lMantle`,瞬间感觉哪儿不对,明明可以运行,真机测试也没问题,怎么打包出现找不到`Mantle`库的问题,然后就开始分析。 阅读全文
posted @ 2017-07-20 10:12 飞鱼湾 阅读(297) 评论(0) 推荐(0)
摘要:历经一年的等待之后,终于在`2017`年`1`月`9`日,小程序揭开了神秘面纱,正式上线。其中,默认在微信里是没有小程序入口的,需要用户先关注运行任何一个小程序,然后才能在微信里面找到小程序的入口,这一点和之前的公众号类似,都是微信去中心化的体现。 阅读全文
posted @ 2017-07-20 10:09 飞鱼湾 阅读(261) 评论(0) 推荐(0)
摘要:前端布局一直是CSS的一个重点应用,然而基于盒子模型的传统布局方案,依赖`display` + `position` + `float` 属性,对于某些特殊的布局非常不方便,比如:**垂直居中**就不容易实现。针对这一情况,在`2009`年,`W3C`提出了一种新的方案:`Flex`布局,可以简便、完整、响应式地实现前端的各种布局,并且已经得到几乎所有浏览器的支持。 阅读全文
posted @ 2017-07-20 10:05 飞鱼湾 阅读(2967) 评论(1) 推荐(3)
摘要:`2013`年的`WWDC`大会上,苹果推出了`NSURLSession`,对`Foundation URL`加载系统进行了彻底的重构,提供了更丰富的`API`来处理网络请求,如:支持`http2.0`协议、直接把数据下载到磁盘、同一`session`发送多个请求、下载是多线程异步处理和提供全局的`session`并可以统一配置等等,提高了`NSURLSession`的易用性、灵活性,更加地适合移动开发的需求。 阅读全文
posted @ 2017-07-20 10:00 飞鱼湾 阅读(933) 评论(0) 推荐(0)
摘要:尽管`NSURLConnection`已经不建议使用了,`iOS 7`取而代之的是`NSURLSession`,但是本文依然打算剖析一下,其中一些思想还是值得学习一下,如果您不用`NSURLConnection`,并且也不打算尝试使用,可以跳过本文。 阅读全文
posted @ 2017-07-19 17:37 飞鱼湾 阅读(3172) 评论(0) 推荐(0)
摘要:蓝牙是一个标准的无线通讯协议,具有设备成本低、传输距离近和功耗低等特点,被广泛的应用在多种场合。蓝牙一般分为传统蓝牙和`BLE`两种模式:传统蓝牙可以传输音频等较大数据量,距离近、功耗相对大;而`BLE`则用来传输节点数据,传输数据量十分小,多数情况处于休眠状态,因而功耗十分低,被广泛的应用于智能穿戴设备。 阅读全文
posted @ 2017-07-19 17:32 飞鱼湾 阅读(3678) 评论(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 飞鱼湾 阅读(1540) 评论(0) 推荐(0)
摘要:上一篇解读了 的三个重要的类的底层实现,本篇继续。 一、RACMulticastConnection 1.应用 : 用于当一个信号被多次订阅时,为了保证创建信号时,避免多次调用创建信号的block造成副作用,可以使用该类处理,保证创建信号的block执行一次。 2.源码实现 底层原理 创建信号 创建 阅读全文
posted @ 2017-07-19 17:09 飞鱼湾 阅读(365) 评论(0) 推荐(0)
摘要:本着饮水思源的想法,面对`ReactiveCocoa`的强大功能,按捺不住心中的好奇心,于是走进其源码之中,一探`ReactiveCocoa`的魅力所在。虽然,耳闻其强大功能的核心是:信号,但一直不知道这个信号是如何产生、如何传递,又是如何被处理的。曾经以为信号传递是通知,但是真正读了源码后,才发现之前的想法有多不妥,而人家的实现又是多巧妙。 阅读全文
posted @ 2017-07-19 16:55 飞鱼湾 阅读(711) 评论(0) 推荐(0)
摘要:上一篇介绍了`ReactiveCocoa`的常用类,已经基本满足项目中的简单应用要求,但是针对复杂的功能还需要其它的类来协同处理。`ReactiveCocoa`提供了强大的流程处理功能来解决复杂的问题,包括事件点击、代理、通知、事件同步和异步等等,可以简化代码体量,实现 **高聚合、低耦合** 的编程思想。 阅读全文
posted @ 2017-07-19 11:26 飞鱼湾 阅读(602) 评论(0) 推荐(0)
摘要:作为函数式编程和响应式编程的代表`ReactiveCocoa`,自一出世便受到广大码农的热爱,结合`MVVM`编程模式,不仅能够方便的处理各种交互事件、降低模块间的耦合性,还能简化项目结构,降低阅读和维护的成本 阅读全文
posted @ 2017-07-19 11:13 飞鱼湾 阅读(322) 评论(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 飞鱼湾 阅读(936) 评论(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)
摘要:网上关于`cocoapods`的教程很多,关于它的优点我不赘述;但是我根据多次安装的经验,把我遇到的问题写一下,希望对新手有所帮助。 阅读全文
posted @ 2017-07-18 09:39 飞鱼湾 阅读(265) 评论(0) 推荐(0)
摘要:`React Native`的出现,使的开发`iOS`代码出现了更便捷的方式。由于`RN`是使用脚本语言编写的,实现了“解释执行”的方式,而这种执行方式的修改只需替换脚步即可,不需要重新发布程序,热更新的方式极大的方便了迭代开发。 阅读全文
posted @ 2017-07-18 09:38 飞鱼湾 阅读(2840) 评论(0) 推荐(0)
摘要:`MBProgressHUD`是一个显示提示窗口的三方库,常用于用户交互、后台耗时操作等的提示。通过显示一个提示框,通知用户操作或任务的执行状态;同时,利用动画效果,降低用户等待的焦虑心理,增强用户体验。 阅读全文
posted @ 2017-07-18 09:30 飞鱼湾 阅读(587) 评论(0) 推荐(0)
摘要:一直以为自己记忆力很好,毕业之后才发现,之前需要看一遍就能记住的东西,现在看两三遍才能有印象。而搞技术的,如果不及时的记录下当时的情景,过后很容易就忘记。所以,再次萌生了搭博客、写文章的想法(之前用`Discuz`模板搭过一个论坛,后来忙的废掉了)。 阅读全文
posted @ 2017-07-18 09:29 飞鱼湾 阅读(1823) 评论(0) 推荐(0)
摘要:`SVProgressHUD`是`iOS`开发中比较常用的一个三方库,用来在执行耗时操作或者指示用户操作结果的场合,由于使用简单,功能丰富,交互友好,被广泛应用。本文从源码的角度,解读一下实现的过程,希望能起到抛砖引玉的作用。 阅读全文
posted @ 2017-07-17 18:40 飞鱼湾 阅读(1399) 评论(0) 推荐(0)