- 博客(9)
- 收藏
- 关注
原创 Runloop 探秘(二)—— NSTimer 计时不准?
有这么一个场景,在界面中除了有 tableView,还有显示倒计时的 Label,当我们在滑动 tableView 的时候,倒计时就停止了,你是否遇到过这种问题?首先来回顾一下 NSTimer 的相关知识。一般的做法是,在主线程(UI 线程)中创建 Timer。会有两种写法,如下所示:// 第一种写法:NSTimer *timer = [NSTimer timerWithTimeInterval:
2017-10-27 17:18:50 851
原创 Runloop 探秘(一)
什么是 Runloop?从字面意思看,Runloop 是一个运行循环,类似跑圈的概念。Runloop 是和线程紧密相关的一个基础组件,是多线程相关的幕后英雄。在平常开发中可能很少碰到,但作为一名力求上进的程序猿,实在有必要了解其相关概念和原理。Runloop 的基本作用保持程序的持续运行;处理 APP 中的各种事件(比如触摸事件、定时器事件、Selector 事件等等)节省 CPU 资源,提高
2017-10-26 15:25:23 691
原创 TCP 与 UDP 对比,以及 TCP 的三次握手与四次挥手
首先是对两个概念的简要说明: TCP(Transmission Control Protocol):传输控制协议; UDP(User Datagram Protocol):用户数据报协议。TCP 与 UDP 相同点TCP 和 UDP 都是在网络层,都是传输层协议,都能保护网络层的传输,双方的通信都需要开放端口。TCP 与 UDP 不同点TCP 是面向连接的协议,UDP 是无连接协议; TCP
2017-10-24 18:57:45 1102
原创 NSString 使用 copy 关键字和 strong 关键字修饰的异同
NSString 为什么要用 copy 关键字,如果用 strong 会有什么问题?当然,这里没有说用 strong 就一定不行,使用 copy 和 strong 是看情况而定的。网上也有很多文章是解释这一点的,但都不够形象清晰,博主的博客风格是力求简单易懂,尽量用实例来说明问题。不说太多废话,用最简单的例子来说明问题,直接上代码和运行截图: 通过上面的例子可以看出,当使用 strong 修饰 N
2017-10-20 17:40:05 1812
原创 代理属性为何要用 weak 修饰?
代理模式在 IOS 开发中的使用频率非常之高,然而很多人只是单纯地惯性使用,并没有弄清楚一点——要用 weak 修饰代理属性,今天就来细说这其中的缘由。用一个实例进行说明(一共有三个类,BabyView 类,BabySitterView 类,ViewController 类,假设 BabyView 类想要做一些自己无法做的事情,就必须具有代理的属性,因此指定一个协议,而 BabySitterView
2017-10-19 11:25:37 1405
原创 LeetCode 001 —— Two Sum
博主喜欢在闲暇时写点算法题目活跃活跃思维,之前在许多在线平台都有尝试过,比如北京大学的 POJ,浙江大学的 ZOJ,华为研究院自己研发的华为OJ等等,各有各的特色。最近很长一段时间华为OJ 平台外网登不上去了,很是遗憾,本着满腔热血,开启了 LeetCode OJ 平台的征战。这是在该平台的第一个题目,非常简单,也正好重温一下 C++ 基础知识。题目描述: 解题思路: 非常简单,若不是十分在意耗
2017-10-17 20:40:13 464
原创 为什么说 Objective-C 是一种动态语言?
为什么说 Objective-C 是一种动态语言?这看起来似乎是一个简单而不简约而又老生常谈的问题,然而真正弄懂 Objective-C 的动态特性,三言两语还真是说不清楚。Objective-C 是 C 的超集,在 C 语言的基础上添加了面向对象的特性,并且用 Runtime 这个运行时机制,为 Objective-C 增添了动态的特性。这篇文章不以博大精深的 Runtime 作为重点,而以开发过
2017-10-17 17:23:30 2286
原创 深度理解并设置 placeholder 属性,定制自己的 textField
textField 是 IOS 开发中比较常用的控件,绝大多数时候,系统所提供的简易 textField 功能是不够的。面对 UI 给出的各种属性和特点,需要 DIY 具有较强扩展功能的 textField,此时,就需要了解 textField 的一些深层属性。placeholder 是 textField 中比较重要和常用的属性,在剖析 placeholder 之前,先来讲讲如何给 textFie
2017-10-14 21:00:12 2220
原创 IOS MD5加密
在软件开发过程中,对数据的加密是保证数据安全的重要手段,在 IOS 开发中,对于发送的网络请求,有时候是需要进行加密处理的,例如,采用阿里云的直播方案,在获取推流地址时,需要对 Token 地址进行加密处理。MD5 加密是一种比较常见的加密算法,它是一种特殊的加密方式。针对其独特性,总结为以下几点:1. 长度固定 不管多长的字符串,加密之后都是一样的长度。2. 容易计算 字符串和文件的加密过程是
2017-10-11 16:53:54 7905
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人