iOS DZNEmptyDataSet源码解析

DZNEmptyDataSet是一个无数据时的空白页展示框架,支持自定义文字和图片,用起来很方便。最近研究了一下它的源代码,学习到了很多编程上的技巧。 基本用法以UITableView为例,UITableView只需要遵循DZNEmptyDataSet的代理方法,代理方法设置空白页显示文字和图片...

2018-08-27 11:52:32

阅读数:64

评论数:0

iOS Swizzle的正确使用方式(原文翻译)

文章翻译自https://blog.newrelic.com/engineering/right-way-to-swizzle/    感谢作者Bryce Buchanan 通常在运行时,Swizzle是通过用一个方法的实现来替换另一个方法的实现来运作的。运用Swizzle可能是因为不同的需求...

2018-08-25 16:41:24

阅读数:56

评论数:0

iOS objectForKey与valueForKey的区别

objectForKey: returns the value associated with aKey, or nil if no value is associated with aKey. 返回指定 key 的 value,若没有这个 key 返回 nil. valueForKey: re...

2018-08-22 14:44:54

阅读数:43

评论数:0

iOS _cmd的意义

在Apple的官方介绍里看到轻描淡写的说了一句:“The _cmd variable is a hidden argument passed to every method that is the current selector”,其实说的就是_cmd在Objective-C的方法中表示当前方法...

2018-08-21 11:34:51

阅读数:36

评论数:0

Swift 中如何理解copy-on-write

当值类型(如struct)在复制时,复制的对象和元、原对象实际上在内存中指向同一个对象。当且仅当修改复制后的对象时,才会在内存中重新创建一个新的对象。举例: //arrayA是一个数组,为值类型 let arrayA = [1,2,3] //arrayB这个时候与arrayA在内存中是同一个...

2018-08-09 23:12:18

阅读数:79

评论数:0

iOS--assign修饰对象类型会怎样?

首先我们需要明确,对象的内存一般被分配到堆上,基本数据类型和oc数据类型一本被分配在栈上。 如果用assign修饰对象,当对象释放后(因为不存在强引用,离开作用域对象内存可能被回收),指针的地址还是存在的,也就是说指针并没有被置为nil,下次再访问该对象就会造成野指针异常。对象是分配在堆上的,堆...

2018-08-09 22:50:27

阅读数:208

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭