移动开发

package.json 和 package-lock.json

1. 前言 应该很多人 搞不清楚, 我们天天见天天用的 这个 package.json 和package-lock.json到底有啥关系 那今天就来捋一下 2. package.json 首先在说下这个 我们自以为觉得熟的不能在熟的package.json package.json是帮我们管理项目中的依赖包的,让我们远离了依赖地狱。 遵循commonJS规范 ,通过 npm管理,

AutoLayout 和 AutoresizingMask的使用

Swift 中 AutoLayout 和 AutoresizingMask 用于自动调整视图的布局,以适应不同大小的设备和屏幕方向。两种方法都可以用来处理视图的自动适应问题,但是它们的实现有所不同。 AutoLayout AutoLayout是一个基于约束的视图布局系统,它可以使视图根据约束条件自动适应不同的设备尺寸和方向。通过添加约束条件,AutoLayout会计算出每个视图的正确位置和大小,

【Android 架构之 MVI 雏形】响应式编程 + 单向数据流 + 唯一可信数据源

这是 MVI 架构的第一篇,系列文章目录如下: 【Android 架构之 MVI 雏形】响应式编程 + 单向数据流 + 唯一可信数据源 关于Android 架构 的MVI 初级体 【Android 架构之 MVI 完全体】 就MVVM 来说关于PartialChange & Reducer [Android 架构之 MVI究极体]数据区分状态和事件,解决粘性数据 引子 MVI 是Mod

iOS WKWebView同步设置Cookie的踩坑

一、存储Cookie 1. 登录成功后,存储Cookie到本地。因为下次重启APP,不再走登录接口的话,Cookie会丢失,所以需要先存本地。 存储时注意,要判断是当前登录系统对应的域名或IP。因为我遇到,登录接口成功后,还出现了友盟的Cookie的,防止被其他域名或IP的Cookie给覆盖。 1.存储Cookie // 存储Cookie        NSArray *cookie

Android productFlavors 实现多项目打包

最近接到产品一个需求,需要将现有工程打一个新的apk出来,要给到新客户使用,需要替换appIcon, appName, appId以及切换新的api接口需要切换新的地址。 场景大概如下图: 使用场景 二话不说,直接上代码 第一步:添加productFlavors配置 打开项目app工程的build.gradle文件,在android {}标签里面添加下面代码 productFlavo

mac中使用QuickTime Player看了移动硬盘里的视频,如何清除记录?

mac的QuickTime Player有一个bug,就是用它看完移动硬盘中的视频之后,播放记录(也就是右击QuickTime Player的最近使用项目)没有办法清除。我们先来复现一下问题: 移动硬盘中的视频 我们双击打开这个移动硬盘里的电影进行播放: 播放 当我们关掉电影后,右击看一下QuickTime Player的记录: 记录 这时候如果我们正

浅谈NSProxy

什么是 NSProxy     在苹果官方文档中是这样对 NSProxy 描述的:一个抽象的根类,通常,发送给代理的消息被转发到真实对象,或使代理加载(或转换为)真实对象。头文件代码如下: @interface NSProxy <NSObject> { __ptrauth_objc_isa_pointer Class isa; } + (id)alloc; + (id)all

Swift事件传递和响应过程

当view被点击,事件传递过程为: 1、系统检测到手指触(Touch)操作时会将其打包成一个UIEvent对象,并放入当前活动Application的事件队列 2、UIApplication将处于任务队列最前端的事件向下分发,即UIWindow 3、UIWindow将事件向下分发,即UIView 4、UIView首先看自己是否能处理事件,触摸点是否在自己身上;能处理且触摸点在自己身上,就继续寻找子

Android Handler之同步屏障机制(sync barrier)

Handler Message种类 Handler的Messgae种类分为三种: 普通消息 异步消息 屏障消息 其中普通消息又称为同步消息,我们平时发的消息基本都是同步消息,在这里不做讨论。 异步消息 通常我们使用Handler想消息队列中添加的Message都是同步的,如果我们想要添加一个异步的Message,有以下两种方式: 1、Handler的构造方法有个async参数,默认的构造方法此参数