移动开发

第十五章 源代码文件 REST API 简介

[toc] 第十五章 源代码文件 REST API 简介 源代码文件 REST API 简介 此 REST API 提供对源代码文件的访问。我们开发此 API 是为了允许 Atelier(我们基于 Eclipse 的 IDE)访问 IRIS 服务器上的 IRIS 代码文件。可以使用 API 执行访问 IRIS 代码文件所需的操作。这些行动包括: 获取 IRIS 实例上可用的命名空间 查找命名空间

iOS DispatchSourceTimer 定时器

1. 概述 说起计时器,很多开发人员第一时间就会想起Timer,但是随着使用的深入,慢慢就发现Timer其实不是很好用,比如说TableView滑动时候不执行,Timer循环引用。 2. DispatchSourceTimer DispatchSourceTimer,也就是大家通常叫的GCD Timer,是依赖于GCD的一种Timer,Runloop的底层代码中也用到这种Timer,可见GCD T

iOS获取设备唯一标识和UUID

UIDevice.current.identifierForVendor?.uuidString 以上获取uuidString的方法,每次重启都会改变。 但是项目的要求是不变,并且删除app 只有也有有保留的需求。显然这个无法满足我们的需求。 使用KeyChain解决 keychain(钥匙串)存储在iOS系统中,并且恢复iPhone会使keychain的内容也恢复.但是删除App是不会影响k

iOS-静态库&动态库-Embed&Sign

1、静态库&动态库 1.1 库介绍 程序的run流程:编译->链接->生成可执行文件->运行(加载可执行文件&动态链接库)。根据链接时期的不同,库又有静态库和动态库之分。静态库是在链接阶段被链接的,所以生成的可执行文件就不受库的影响,即使库被删除,程序依然可以成功运行。而动态库是在程序执行的时候被链接的。程序执行完,库仍需保留在系统上,以供程序运行时调用。链接静态

AutoLayout 和 AutoresizingMask的使用

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

ES6基础

一、ES6概述 JavaScript脚本语言贡献给ECMA组织用于制定前端编程语言标准,标准化组织推出了ECMAScript语法标准 二、变量声明扩展 let:声明变量,存在块级作用域(大括号范围也可以是一个作用域)、没有变量预解析、不能重复声明等等 const:声明常量,常量一旦声明不能改动 ① let声明变量 let name = "大牧" console.log(name, "na

spring-retry解决重试

一、前言 在日常开发过程中,难免会与第三方接口发生交互,例如:短信发送、远程服务调用、争抢锁等场景,当正常调用发生异常时,例如:网络抖动,这些间歇性的异常在一段时候之后会自行恢复,程序为了更加健壮并且更不容易出现故障,需要重新触发业务操作,以防止间歇性的异常对程序照成的影响。常用的重试策略,比如通过 while 循环手动重复调用或是通过 JDK/CGLib 动态代理的方式来进行重试。但是这种方法比

Swift 5.5 新特性

Async/await 新旧方式的比较 以前的方式: func fetchWeatherHistory(completion: @escaping ([Double]) -> Void) { // Complex networking code here; we'll just send back 100,000 random temperatures DispatchQue

Swift面试题总结

1.convenience : 便利,使用convenience修饰的构造函数叫做便利构造函数 // 便利构造函数通常用在对系统的类进行构造函数的扩充时使用 便利构造函数的特点 1.便利构造函数通常都是写在extension里面 2.便利构造函数init前面需要加convericece 2.swift中Class和Struct的区别 struct SRectangle { var wid

SDWebImage5.11源码分析(二)

接上一篇文章继续分析SDWebImage5.11的缓存部分 SDImageCache 缓存获取数据,主要是通过key缓存(上一篇文章有说),cacheType判断缓存方式,options进行缓存拓展。主要内容如下: a. 对cacheOptions类型进行筛选 b. 进入queryCacheOperationForKey方法,对具体缓存方式进行划分,其中包括内存缓存,磁盘缓存。然后又在各自缓