Shadow Wu's Blog

任他凡事清浊,为你一笑间轮回甘堕

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帕,这是人耳能分辨...

JSON转模型 For YYModel

使用 YYModel库 快速完成 JSON 转模型

JSON转模型是我们做iOS开发的基础技能,本文将通过YYModel这个框架安全快速的完成JSON到模型的转换,其中还会介绍到一款好用的插件ESJsonFormat。 1、首先创建模型类 创建模型类我们可以通过ESJsonFormat这款插件快速完成。 使用方法: 将光标移动到代码行中 如下图的13行 然后点击Window->ESJsonFormat->Input...

Xcode Debug 大全

iOS开发中利用 Xcode 各种调试Bug方法

前言 BUG,简单来说就是程序运行结果与预期的不同,下面来说说Xcode中的DEBUG方法 参考博文 断点调试 普通断点 全局断点 条件断点 1.普通断点 看图 当程序运行到断点处时会停下,然后进行单步调试 2.全局断点 当程序运行出现崩溃时,就会自动断点到出现crash的代码行 3.条件断点 我们如果在一个循环里面使用了断点,如果这...

iOS手势与变形

手势与变形基础知识笔记

手势在用户交互中有着举足轻重的作用,这篇文字简单的介绍了iOS中的手势,并通过手势对控件进行变形处理。 手势 iOS手势分为下面这几种: UITapGestureRecognizer(点按) UIPanGestureRecognizer(拖动) UIScreenEdgePanGestureRecognizer (边缘拖动) UIPinchGestureReco...