03 2021 档案
摘要:1、背景: Xcode Version 12.2 beta (12B5018i) 新建好的Xcode swift项目,运行的好好地,由于我要手动导入SnapKit.导入失败,工程无法构建了。折腾了半天工程配置那个地方已经失败了,我又找不到问题出在哪里。 把SnapKit去掉之后,又重新配置,buil
阅读全文
摘要:软件设计的7条原则 1、开闭原则 软件实体应该对扩展开放,对修改关闭。 对扩展开放可以使得软件拥有一定的灵活性,同时对修改关闭可以保证软件的稳定性。 (勃兰特·梅耶于1988年在《面向对象软件设计》中提出) 2、里氏替换原则 继承必须保证超类所拥有的性质在子类中依然成立 遵守里氏替换原则在对父类继承
阅读全文
摘要:1、GCD提供了一种信号量机制,我们可以用它来做线程的同步控制。 信号量的工作机制: 信号量支持“信号通知”和“等待”两个操作,初始化时会给信号量一个初始整形值,他代表线程可以访问的资源数。信号量被通知,值加一,当一个线程被信号量控制为等待,线程会被阻塞,直到信号量计数值大于0,然后线程会减少这个计
阅读全文
摘要:1、背景 由于传统已知的三种方法获取uuid都不能保证它唯一不变,那么我们可以利用钥匙串服务,来生成并存储一个唯一不变的字符,作为唯一的设备id. /** 利用CFUUIDCreateString函数生产UUID, 卸载应用重新安装后会不一致*/ + (NSString *)getUUID{ CFU
阅读全文
摘要:iOS Fundation和CoreFoundation的对象转换 1、对象转换时涉及到内存管理权的问题 背景:Foundation框架和CoreFoundation框架分别是由C语言和OC语言实现的苹果官方库。 就是由于是由不同的语言实现的,在iOS5之后,OC开始支持ARC内存管理。在MRC时
阅读全文