移动开发

Swift Protocol

- 用于通信 一个简单的例子: 比如你封装了一个View, 需要回调出去一个按钮事件 class TestView: UIView { // 注意这里要使用weak标记 weak var delegate: TestViewProtocol? fileprivate lazy var iEnterBtn: UIButton = { let btn

07_Android协程

Android协程     本文以网络请求为例,由浅入深,来说明协程在Android中的使用方式。后半部分介绍一些协程概念。 (1)添加依赖项     如下: dependencies { implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9") } (2)网络请求函数     这是一个同步的阻塞函数

超全的12种数组去重的方法

方法1、双重for循环 这是一个最笨的方法,双重循环。 var arr = [1, 2, 3,4 ,5,6, 4, 3, 8, 1] // 数组去重: // 方法1: 双重for 循环 function newArrFn (arr) { // 创建一个新的空数组 let newArr = [] for(let i = 0;i<arr

iOS14 Universal Link隐藏顶部横幅方法

配置好Universal Link之后顶部都会有一个打开app的横幅,有时候我们不想显示这个横幅,iOS14之后苹果官方给出了解决办法。 假设Universal Link为www.abc.com 在浏览器输入www.abc.com会自动定位到www.abc.com/main,这时如果想要隐藏www.abc.com/main这个地址下顶部的横幅,方法如下: 单个app: { "applinks"

vue防止内存泄漏的几点写法

1、beforeDestroy beforeDestroy周期一般是在组件销毁时调用,比如使用v-if进行组件的显示隐藏,或者页面跳转时就会调用到这个周期。 堆内存使用后一定要注意释放,否则gc总不回收就会导致内存泄漏。 比如对dom的引用、事件Listener、总线eventBus等,一定要在beforeDestroy里释放解绑。 export default { nam

iOS关联对象objc_setAssociatedObject探讨

主要函数为: //为给定的对象设置一个关联值 public func objc_setAssociatedObject(_ object: Any, _ key: UnsafeRawPointer, _ value: Any?, _ policy: objc_AssociationPolicy) //返回与给定键的给定对象关联的值 public func objc_getAssociatedObj

12.类的关系——继承关系

1、继承关系 1.1 继承的概念 ·继承机制是面向对象程序设计不可缺少的关键概念,是实现代码可重用的根基,是提高软件系统的可拓展性与可维护性的主要途径。 ·所谓继承是指一个类的定义可以基于另外一个已经存在的类,即子类基于父类,从而实现父类代码的重用,子类能吸收已有类的属性和行为,并能拓展新的能力。 形式:【访问权限修饰符】【修饰符】子类名 extends 父类名{子类体} 例: //类:图形 pu

iOS开发 验证安全证书如何与服务端协作

在iOS开发中,客户端和服务端之间使用SSL/TLS协议进行加密通信时,需要进行证书验证以确保通信的安全性。以下是iOS开发中验证证书的流程和与服务端协作的方法: 1.在客户端实现证书验证 在iOS开发中,可以使用NSURLSession或NSURLConnection来建立安全连接。默认情况下,这些类将使用系统内置的根证书验证服务器提供的证书,但也可以自定义证书验证逻辑。例如,可以使用AFSec

密钥管理说明

密钥,一般泛指生产、生活所应用到的各种加密技术,加密密钥的安全性对其保护的数据的机密性至关重要。有权访问密钥的危险参与者可以读取敏感数据,甚至可能为虚假或修改的记录生成有效签名。通常情况下,客户通常遵循阻力最小的路径,并不总是了解如何安全地创建、存储和访问密钥。当密码和密钥被重复使用时,或者当密钥存储不安全并且没有适当的访问规则来强制执行授权和身份验证时,这可能会导致危及客户数据安全的漏洞。 因此

Android卡顿监控

实现思路 卡顿监控主要监控:慢方法的监控、ANR的监控、掉帧的监控。其实现方案主要有三种: Looper的Printer在消息执行前后的打印,计算出消息执行时间。 利用Choreographer向其注册CALL_BACK, 监听Vsync的开始从而得到上一帧的执行时间。 利用插桩的方法计算每个方法的执行时间。 比如对慢方法、ANR的监控,则是对主线程的Looper的消息的监听,对掉