Siyao's Blog

Thinking will not overcome fear but action will.

Objective-C Runtime 详解

Runtime 详解

前言 最近在学习Runtime的知识,恰巧发现了这篇博客《Objective-C Runtime》,在此基础上,进行了些许补充说明,如有错误或其他想法,欢迎提出交流。 基础知识 引言 简介 与Runtime交互 RunTime术语 消息 动态方法解析 消息转发 健壮的实例变量 动态添加属性(Object-C Associated Objects...

BYPhoneNumTF

一个电话号码格式的文本框

BYPhoneNumTF 一个电话号码格式的文本框 功能 当在TextField输入数字时,会自动分隔为:137 9922 2299 或 137-9922-2299 限制文本输入个数 限制只能输入数字 效果: 实现方法 要实现电话号码格式的输入看似简单,但是实现起来坑非常多,至于坑是什么只有各位动手写了才能体会~ 下面我们来实现该功能: 首先要遵守协议<UI...

ReactiveCocoa 进阶

函数式编程框架 ReactiveCocoa 进阶

前言 在上篇文章中介绍了ReactiveCocoa的基础知识,接下来我们来深入介绍ReactiveCocoa及其在MVVM中的用法。 常见操作方法介绍 操作须知 所有的信号(RACSignal)都可以进行操作处理,因为所有操作方法都定义在RACStream.h中,因此只要继承RACStream就有了操作处理方法。 操作思想 运用的是Hook(钩子)思想,Hook是一种用于...

ReactiveCocoa 基础

函数式编程框架 ReactiveCocoa 基础入门

ReactiveCocoa基础 本文修改自最快让你上手ReactiveCocoa之基础篇 有关对 ReactiveCocoa 的看法可以看一下唐巧的这篇ReactiveCocoa 讨论会 ReactiveCocoa简介 ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的新框架,Cocoa是苹果整套框架的简称,因此很多苹果框...

Objective-C:Category

深入解析 Category 的实现原理

本文转载自美图点评技术团队的:深入理解Objective-C:Category,略有修改。 前言 无论一个类设计的多么完美,在未来的需求演进中,都有可能会碰到一些无法预测的情况。那怎么扩展已有的类呢?一般而言,继承和组合是不错的选择。但是在Objective-C 2.0中,又提供了category这个语言特性,可以动态地为已有类添加新行为。如今category已经遍布于Objec...

定时器 你真的会使用吗?

iOS定时器详解

前言 定时器的使用是软件开发基础技能,用于延时执行或重复执行某些方法。 我相信大部分人接触iOS的定时器都是从这段代码开始的: [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(action:) userInfo:nil repeats:YES] 但是你真的会用吗? 正文 iOS...

忽略 Xcode 8 中的注释警告

Bulid Settings -> Documentation Comments -> NO

原因 从Xcode8.0开始,引入了文档注释警告,虽然是件好事,可是各种三方库爆出了一大堆警告: 解决方法: Bulid Settings -> Documentation Comments -> NO

快速添加圆角和描边

iOS 为图片添加圆角和描边的几种方式

前言 对于习惯使用Storyboard的人来说,设置圆角、描边是一件比较蛋疼的事,因为苹果没有在xcode的Interface Builder上直接提供修改控件的圆角,边框设置。 我们来说说如何对某个控件进行圆角、描边处理: 初级 对于一个初学者来说,如果要进行某个控件的圆角、描边设置,就要从Storyboard关联出属性,然后再对属性进行代码处理。 如下代码: self.myBut...

Objective-C:RunLoop

深入理解RunLoop

深入理解RunLoop 本文转自:《深入理解RunLoop》 前言 RunLoop 是 iOS 和 OSX 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理。之后会介绍一下在 iOS 中,苹果是如何利用 RunLoop 实现自动释放池、延迟回调、触摸事件、屏幕刷新等功能的。 目录 RunLoop 的概念...

iOS噪音计

一个iOS噪音计模型、以及测量原理及分贝计算

前言 最近在办公室觉得有点吵,然后忽然想做一个噪音计测试一下噪音,在App Store下载了几款测噪音软件,使用原来都大同小异。于是决定自己实现测噪音的原理。 分贝dB 首先要测量噪音,必须知道噪音的大小的参考的单位为分贝(dB),分贝的定义如下: SPL = 20lg[p(e)/p(ref)] p(e)为待测的有效声压,p(ref)为参考声压,一般取2*10E-5帕,这是人耳能分辨...