转载请注明,原文地址:Swift4 终极解析方案:基础篇 做过网络开发,特别是互联网,甚至移动端开发的,日常对于数据解析,早年主流的XML,现今主流的JSON都是非常熟悉的,...
转载请注明,原文地址:Swift4 终极解析方案:基础篇 做过网络开发,特别是互联网,甚至移动端开发的,日常对于数据解析,早年主流的XML,现今主流的JSON都是非常熟悉的,...
背景 之前就了解到js中有Promise这么一个东西,可以很友好的实现异步方法,后来偶然在一段ios开源代码中看到这么一段用法: 眼前一亮,firstly第一步做xxx,th...
layoutSubviews在以下情况下会被调用: init初始化不会触发layoutSubviews但是是用initWithFrame 进行初始化时,当rect的值不为CG...
自旋锁:是用于多线程同步的一种锁,线程反复检查锁变量是否可用。由于线程在这一过程中保持执行,因此是一种忙等待。一旦获取了自旋锁,线程会一直保持该锁,直至显式释放自旋锁。 自旋...
isKindOfClass:确定一个对象是否是一个类的成员,或者是该类的子类成员 isMemberOfClass:只能确定一个对象是否是当前类的成员. 比如MyString继...
图片缓存框架 图片的读写 读取图片image.png 缓存图片image.png (1)如果程序并没有被关闭,一直在运行,那么此时内存缓存中有数据,硬盘缓存中有数据。如果此时...
1.privateprivate 访问级别所修饰的属性或者方法只能在当前类里或者该类的extension中访问 2.fileprivatefileprivate 访问级别所修...
可以不改变源码的情况下增加实例变量。可与分类配合使用,为分类增加属性。(类别是不能添加成员变量的(property本质也是成员变量 = var + setter、getter...
property 的 atomic 是采用 spinlock_t 也就是俗称的自旋锁实现的. 自旋锁会忙等: 所谓忙等,即在访问被锁资源时,调用者线程不会休眠,而是不停循环在...
load load 函数是当类或分类(Category)被加载到 Objective-C runtime 时(就是被引用的时候)被调用的,实现这个方法可以让我们在类加载的时候...
值类型,即每个实例保持一份数据拷贝。 在 Swift 中,典型的有 struct,enum,以及 tuple 都是值类型。而平时使用的 Int, Double,Float,S...
map() : 就是接受一个闭包作为规则,自动遍历集合的每一个元素,使用闭包的规则去处理这些元素,生成一个结构相同的集合 compactMap: 对给定数组的每个元素,执行闭...
耗电优化 查看耗电情况:1、可使用 Energy Impact 查看 APP 能耗概况2、若是存在高能耗情况,使用 Instruments 的 Energy Log 模板进行...
内存优化 一. 内存泄露 Xcode 自带了两种内存泄露查询工具:1 . Analyze(静态分析工具): 逻辑缺陷:访问空指针或未初始化的变量等; 内存管理错误:如内存泄漏...
七层网络协议 互联网的本质是一系列的网络协议,这个协议就叫做OSI协议OSI模型有7层结构,每层都可以有几个子层。OSI的7层从下到上分别是7-应用层、6-表示层、5-会话层...
weak 的用处 用一句话可归纳为:弱引用,在对象释放后置为 nil,避免错误的内存访问。用更通俗的话来表述是:weak 可以在不增加对象的引用计数的同时,又使得指针的访问是...
pre-main阶段 对于pre-main阶段,Apple提供了一种测量方法,在 Xcode 中 Edit scheme -> Run -> Auguments 将环境变量D...
strong和copy 当原字符串是NSString时,由于是不可变字符串,所以,不管使用strong还是copy修饰,都是指向原来的对象,copy操作只是做了一次浅拷贝。 ...
原因 当你在ViewController(简称VC)中使用timer属性,由于VC强引用timer,timer的target又是VC造成循环引用。当你在VC的dealloc方...