吴川华仔博客 Blog

如果事与愿违,那么请你相信,上天一定另有安排!

Hello 2017

"Hello World, Hello Blog"

“🙉🙉🙉 ” 前言 BY 的 Blog 就这么开通了。 本来打算在年前完成 Blog 的搭建,不曾料想踩了很多坑。。。 跳过废话,直接看技术实现 2017 年,BY Blog 总算是搭建好了。 最开始写博客是在简书这个平台上,简书确实不错,支持markdown在线编辑。 在一次偶然间,听到我的好基友 阳阳 想搭建个人主页,觉得作为一个程序员,是应该倒腾倒腾自己的Blo...

Objective-C Runtime 基本使用

Runtime 使用案例

前言 在上一篇文章《Objective-C Runtime详解》中我们探讨了Runtime的基本原理,这篇文章我们将总结一下Runtime的一些基本使用 使用方法 查询方法 给分类添加属性 更换代码的实现方法 动态添加方法 字典转属性 准备 先创建两个类 ClassA.h #import <Foundation/Foundation.h&g...

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...