方法一 原始方法解析 1. 导出ips文件 途径一:手机连接Xcode查看和导出Xcode -> Window -> Devices and Simulators -> Vi...
方法一 原始方法解析 1. 导出ips文件 途径一:手机连接Xcode查看和导出Xcode -> Window -> Devices and Simulators -> Vi...
绝大多数网络请求的第一步都是DNS解析,解析请求根据当时网络情况不同,各平台的DNS缓存策略差异等因素,对移动端app整体网络性能会产生或大或小的影响。移动端app网络性能优...
目录一: 卡顿检测以及原理runloop卡顿检测消息转发解决定时器循环引用GCD定时器封装NSProxy消息转发Tagged Pointer二: 性能优化,卡顿产生原理以及优...
标签: 单例模式、线程安全 我们都知道在ios中单例模式,就是指在一个应用程序的生命周期内要保证只存在一个对象实例,那在多线程中是如何实现并保证线程安全的呢,咱们不妨先来看一...
跨域的原因主要是同源政策的影响,所谓同为政策就是需要页面服务器协议,端口,域名都一样。注意:子域不同,也叫跨。 当客户端向服务端发送请求后,服务端接受到请求,并返回相应的数据...
响应式编程&链式编程 公司的几个共享项目, 有较多后台定时的网络请求,定位和蓝牙操作的组合. 原方案是通过闭包嵌套起来, 如此一来有些比较头疼的问题: 闭包回调地狱, 每个组...
本文以播放音乐为例演示动态加载: 正常播放音乐 1.导入AVFoundation.framework2.包含头文件 #import 3.声明类成员变量 dlopen 动态加...
RxSwift特征序列之Driver Driver 是个比较特殊的序列,它主要是对需要在 UI 上做出响应的序列进行了封装。这层封装做了三件事情: 在主线程监听 不会产生 e...
项目中需要 连续点击按钮只让第一次生效,用 throttle 操作符即可; 搜索时文本不断变化导致调用多次接口,用 debounce 操作符即可;实现之后发现每次都要写同样...
首先我们创建一个:序列的中的序列 - string - 映射 - 序列,并且发起多次订阅,如下代码: 运行代码,并在inputTF输入内容1,打印如下: 输入内容1234, ...
我们会有这样的需求: 在搜索框中输入搜索关键字,然后发起请求,将请求的结果分别显示在2个不同的控件上。这个需求需要满足以下条件:1.输入框内容改变一次,需要请求一次网络获取结...
引言 没有代码的瞎掰都是耍流氓! 这里是我使用MVVM模式结合组件化所做的音乐类App小部分功能,包括歌单、搜索和播放。你可以在这里看到viewModel到底如何书写、...
在还没遇到 ReactorKit 这个框架之前,我使用 RxSwift + MVVM 去构建如图的信息流时,确实为我带来很多好处: 层级更加清晰,分工和职能更加明确 大幅度解...
摘要 本系列文章将详细分析iOS的MVVMR架构模式,并基于Swift的响应式、函数式编程框架RxSwift提供相应的实现。系列共分为两个部分: MVVMR架构的思想、基本原...