Swift提供Error协议来表示当前应用程序发生的错误情况,Error的定义如下: 所以Struct、Class、Enum都可以通过遵守这个协议来表示一个错误,一般情况下偏...
Swift提供Error协议来表示当前应用程序发生的错误情况,Error的定义如下: 所以Struct、Class、Enum都可以通过遵守这个协议来表示一个错误,一般情况下偏...
同步、异步、并发、串行 同步和异步决定能否开启新的线程同步: 在当前线程中执行任务,不具备开启新线程的能力异步:在新的线程中执行任务,具备开启新线程的能力并发和串行主要影响任...
关联对象原理 关联对象并不是存储在被关联对象本身内存中,关联对象存储在全局的统一的一个AssociationsManager中 获取到管理所有关联对象的hashmap总表的管...
OSI模型 物理层: 解决两个硬件之间怎么通信的问题,常见的物理媒介有光纤、电缆、中继器等。它主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等...
SideTables 是一个全局的 hash 表, 其中包含了一个数量为64的数组,数组中的存储的为SideTable结构体,其中通过对象内存地址作为hash表的key Si...
在多线程中,当多个线程同时访问同一块资源的时候,就容易引起数据错乱和数据安全问题 (1).OSSpinLock OSSpinLock叫做”自旋锁”,等待锁的线程会处于忙等(b...
iOS13.3.1真机中安装了第三方包并使用免费开发者账号调试时会出现的错误:(之所以说是免费开发者账号是因为网上给出另一种方案说付费账号没有这个问题,暂未验证) 解决方案:...
NSTimeZone时区是一个地理名字,是为了克服各个地区或国家之间在使用时间上的混乱。 1.基本概念: GMT 0:00 格林威治标准时间; UTC +00:00 校准的全...
TouchID指纹技术是苹果2013年在iPhone5s(iOS7)上开始应用的。iOS7是不允许开发人员来使用TouchAPI来验证自己的应用程序。 iOS8开始,苹果陆续...
static 和 class 在 Swift 中 Static 和 class 都是表示「类型范围作用域」的关键字。 在所有类型(class、struct、enum )中使用...
本文提供获取路径的两种方法,返回的类型都是String,还有一种获取路径的方法返回的是URL,FileManager也提供了通过URL操作文件的相关方法,和通过pathStr...
CustomStringConvertible 和CustomDebugStringConvertible这两个协议类似于Objective-C中的重写description...
Identifiable 在apple文档中解释的比较晦涩: 其实Identifiable 非常简单实用,主要作用就是作为一个对象的唯一标识。 来个demo 一个 Expen...
Coadble是在WWDC2017中发布的 Swift4.0 有一个有趣的新特性,Codable 是Encodable 和Decodable 两个协议的组合,写法如下: En...