移动开发

前端开发中常用的10个小技巧,助你写出高逼格代码

1. 有条件地向对象、数组添加属性 1) 向对象添加属性 可以使用展开运算符来有条件地向对象中添加属性: const condition = true; const person = { id: 1, name: "dby", ...(condition && { age: 12 }), }; 如果 condition 为 true ,则 { age: 16 }

UIStackView之一问一答

前言 此篇文章作为在使用UIStackView前的一些答疑,既是扫盲篇,也是实用篇。以下会讲述一些实用的案例,目的就是让更多的人拥抱UIStackView。同时欢迎小伙伴通过评论区讲讲使用StackView遇到的问题。 答疑 排列视图间距大小不一 问:排列视图间距大小不一,可以用UIStackView吗? 答:当然可以用,UIStackView虽然有space属性,但是适用于所有的排列视图,如果想

iOS 动态库和静态库

一、库 库是程序代码的集合,是程序开发者与其他开发者之间进行代码共享的一种方式。 库根据源代码公开的情况可以: 1.开源库 开源库的源代码可见,比如 AFNetworking。 2.闭源库 闭源库的源代码不可见,是一段编译好的二进制代码 闭源库有根据相对编译时和运行时: 静态库 动态库 二、静态库和动态库区别 1.格式上的区别 静态库的格式: .a .framework 动态库的格式:

Android Studio修改国内镜像

国内的Android开发者,基本每隔一段时间就会碰到项目突然不能编译的情况。sdk更新、插件安装也有诸多不便,环境的折腾确实伤透了脑筋。本文主要记录下使用host配置dl.google.com的国内镜像。 1. 用文本编辑器打开host文件 host文件所在路径为: //对于Windows系统 C:\Windows\System32\drivers\etc\hosts //对于Mac系统 /e

Swift 高阶函数使用

Swift 高阶函数使用 map map就是是对原对象所有元素进行一对一转换处理,中间不会跳过或遗漏,包括nil元素。 使用 let numList = [1,2,3] // $0 就是 numList 里的元素 let res = numList.map{$0 + 1} print("map res = \(res)") 返回 map res = [2, 3, 4] 传入方法 var map

Android卡顿监控

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

密钥管理说明

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

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

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

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

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