移动开发

iOS 数据存储(三) -持久化 keychain

一、简介 keychain 是一个相对独立的空间,保存到 keychain钥匙串中的信息不会因为卸载/重装 app 而丢失, 。相对于 NSUserDefaults、plist 文件保存等一般方式,keychain 保存更为安全。所以我们会用 keyChain 保存一些私密信息,比如密码、证书、设备唯一码(把获取到用户设备的唯一I D 存到 keychain 里面这样卸载或重装之后还可以获取到 i

Mac电脑上最新的好用邮件软件比较

在Mac电脑上,选择一款好用的邮件软件需要根据个人需求、功能偏好以及与系统生态的兼容性来决定。以下是基于我搜索到的资料,对当前市场上一些优秀的邮件客户端进行比较和推荐: 1. Apple Mail Apple Mail是Mac系统自带的邮件客户端,简洁易用,与macOS生态系统深度集成,支持iCloud、Gmail、AOL等主流邮箱服务。其主要优点包括: 免费且预装:无需额外下载或支付费用。

Android-推荐一个操作状态栏开源库(StatusBar)

图片来源网络,入侵必删 很多时候,我们开发中都是要适配Android状态栏的。这篇博客分享一个操作状态栏的开源库——StatusBar,目前我开发的新项目使用这个库实现沉浸式状态栏的,希望能提高小伙伴们的开发效率。 StatusBar StatusBar主要用来操作状态栏的,主要特性如下: 透明状态栏,我个人认为可以叫做沉浸式状态栏; 状态栏背景颜色; 状态栏文字颜色(亮|暗色模式)

ES6+ 数组方法

1 、concat() 数组、字符串合并。 let a = [1,2,3] let b = [4,5,6] a.concat(b) // [1, 2, 3, 4, 5, 6] let c = 'hello ' let d = 'world' c.concat(d) // 'hello world' 2、 at() 数组、字符串、类数组中添加.at()方法at()支持正索引和负索引,获取其指定位

超详细!Android 面试题大汇总与深度解析

一、Java 与 Kotlin 基础 1. Java 的多态是如何实现的?多态是指在 Java 中,同一个行为具有多个不同表现形式或形态的能力。它主要通过方法重载(Overloading)和方法重写(Overriding)来实现。 方法重载:发生在同一个类中,方法名相同,

iOS 仿小红书抽屉效果

最新项目中需要做一个类似小红书的侧滑抽屉效果,经过各种实验,发现MMDrawerController用着不错。 大致思路如下: 打开左边抽屉,按钮后左边push出一个新控制器,但是这个控制器仍然显示在左边的抽屉里的 1:用cocoapods pod MMDrawerController第三方 pod 'MMDrawerController' 2:在AppDelegate中 didFinishLa

ES6 Reflect

一、概述 Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。Reflect对象的设计目的有这样几个。 Reflect 可以用于获取目标对象的行为,它与 Object 类似,但是更易读,为操作对象提供了一种更优雅的方式。它的方法与 Proxy 是对应的。 (1) 将Object对象的一些明显属于语言内部的方法(比如Object.defineProperty)

国产APP臃肿:微信从百十K到几百兆,聊天代码只0.1%

国产APP越来越臃肿,这是不争的事实。大家都感同身受。虽然现在手机运存内存都在越来越大,可是手机APP也跟着变大,而且比手机增速更快。比如微信APP就很典型。 B站一大神逆向了微信APP安装包,发现基本的聊天功能代码只有0.1%,而别的,都是其他功能。不管是TX带的头,还是别的起的示范,总之,国产APP微信,恨不能把所有功能集成进去,把自己成为系统的野心塞到用户手机里。 不知道这种情况会到什么时候

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

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

强软弱虚引用如何理解

强引用: 我们平时最常使用的基本对象引用,JVM不会回收强引用类型对象,即使内存不足导致OOM也不会回收。 实现一个强引用 User user = new User() 软引用: 内存空间足够的情况下,JVM不会回收软引用对象,如果内存空间不足,那么软引用对象会被回收。 只要JVM没有回收,软引用就可以继续被程序使用,因此可以用软引用存放一些内存敏感的缓存。只要内存足够,对象就保持永远不被