网络层架构的认识

项目越来越大,发现原来项目的网络架构扩展性比较差,想来想去,还是去了解一下新的架构。而正好,有个项目要把整个API换新的,于是改!!!!

阅读更多

ThreeSum 的 swift实现

第一次刷leetcode,觉得收获挺多的

阅读更多

事件传递:响应链

原本自已想写点一些关于这个的,找了官网看一了一下文档。感觉文档讲得很不错,所以就翻译一下文档就好了,当作是锻炼自已的英语水平吧。ps:可能偶尔会加上一些自已的看法,如有不对,请多多指正。

向官方文档致敬

阅读更多

CocoaPod 为自已创造私有库

简介

没啥好说的,这个东西做iOS的都认识。

前段时间,把自已的一些库给弄出来,做一个私有库,记下来当作笔记。

阅读更多

iOS自动构建-xcodebuild命令

想想当初天天来到公司,每天需要做一件事就是打开Xcode打包ipa,上传到fir。日复一日月复一月年复一年的做着同样的事情,作为有志成为优秀工程师的我来说,这是必须要解决的问题,所以决定自动化解决问题。

简介

xcodebuild 是苹果发布自动构建的工具。它在一个Xcode项目下能构建一个或者多个targets ,也能在一个workspace或者Xcode项目上构建scheme,总的来说,用它没错就是了。

阅读更多

Keychain

Keychain 介绍

Keychain Services 是 OS X 和 iOS 都提供一种安全地存储敏感信息的工具,比如,存储用户ID,密码,和证书等。存储这些信息可以免除用户重复输入用户名和密码的过程。Keychain Services 的安全机制保证了存储这些敏感信息不会被窃取。简单说来,Keychain 就是一个安全容器。

阅读更多

回首2015,计划2016

2015年总结

每当回首过去,总发现时间过得很快。2015也不例外,2014年虽然有目标,但是自己并未记录下来,但是大概能记住去年的目标。

阅读更多

ReactiveCocoa 笔记(一)

前言

ReactiveCocoa一直在各大名博上面推荐,今天我找个时间特意学习一下。

众所周知,ReactiveCocoa是一个函数响应式编程的框架。那我们在学习之前最好了解一下什么是响应式编程。

函数响应式编程(Functional Reactive Programming,简称FRP)
采用别人的一个小例子:

a = 2
b = 2
c = a + b // c is 4
b = 3
// now what is the value of c?

如果是像我们日常的OOP,那c的结果应该是4。但是是FRP,c的值会随着b的变化而变化,也就是说当b=3时,c应该是5。
比较直观的例子就是Excel,当改变某一个单元格的内容时,该单元格相关的计算结果也会随之改变。

阅读更多

iOS多线程之NSOperation

前言

GCD是一种很强大的多线程解决方案,但NSOperation同样也支持多样性的操作。

NSOperation有三种状态

isReady -> isExecution -> isFinish

  • isReady: 返回 YES 表示操作已经准备好被执行, 如果返回NO则说明还有其他没有先前的相关步骤没有完成。
  • isExecuting: 返回YES表示操作正在执行,反之则没在执行。
  • isFinished : 返回YES表示操作执行成功或者被取消了

NSOperationQueue只有当它管理的所有操作的isFinished属性全标为YES以后操作才停止出列,也就是队列停止运行,所以正确实现这个方法对于避免死锁很关键。

阅读更多

iOS 多线程之GCD

前言

在学习Android编程的时候,我们经常会使用 runOnUiThread(),把UI相关的操作放到里面。而一些耗时的操作,则放到一个新的后台线程,但在iOS在使用GCD的时候,我们把定义的任务追加到适当的Dispatch Queue中Dispatch以FIFO(先进先出,First-In-First-Out)的顺序执行任务。在iOS中有两种队列,分别是串行队列和并发队列。

串行队列,很明显一次只能执行一个任务,而并发队列则可以一次性执行多个任务。iOS 系统就是使用这些队列来进行任务调度的,它会根据调度任务的需要和系统当前的负载情况动态地创建和销毁线程,而不需要我们手动地管理。

阅读更多