iOS延迟执行时间的判断
前言 在开发过程中,经常有些东西需要延迟执行,但是容易把延迟执行的写法理解有误,特记录 extension Date { static func systemMilliseconds_int64() -> Int64 { return Int64(Date().timeIntervalSince1970*1000) } } // 延迟时间与设置...
前言 在开发过程中,经常有些东西需要延迟执行,但是容易把延迟执行的写法理解有误,特记录 extension Date { static func systemMilliseconds_int64() -> Int64 { return Int64(Date().timeIntervalSince1970*1000) } } // 延迟时间与设置...
参考 iOS 中的NSDecimalNumber使用 在 Swift 中使用可变参数 ios swift Double Float 保留n位小数 String保留两位小数 本demo源码 前言 日常项目的开发中,经常会遇到数字计算、小数位截取等操作,如果使用标准的Double类型操作,则会丢失精度,需要用到专门用于计算的NSDecimalNumber 一、...
参考: swift-protobuf protobufjs 深入理解Protobuf3协议原理 精通protobuf原理之一:为什么要使用以及如何使用 精通protobuf原理之二:编码原理剖析 精通 protobuf 原理之三:一文彻底搞懂反射原理 protobuf通信协议(proto2) protobuf教程(二)—核心编码原理 Protobuf的高...
前言 由于最近做的是IM相关项目,经常跟socket打交道,近期一个同事把socket模块重构后经常有用户反馈丢消息,查询了很久也不知道是什么原因,后续经过大量日志及服务端协助定位,发现服务端已经给App推送了消息,但是App一直没有给服务端收到回执,导致消息一直累积丢失。后续经过大量日志定位,发现是iOS端在重构socket模块时,把拆包的逻辑做出问题了。 之前跟安卓和服务端沟通,由于...
参考: NSData+zlib 使用NSData+zlib进行zip、unzip操作 zip的压缩与解压缩 import Foundation import GoogleUtilities extension Data { var gzip: Data? { do { let result = try NSData.gul_da...
参考: SwiftyRSA CryptoSwift swift 5.0 RSA+AES加密插件CryptoSwift以及SwiftyRSA的使用 Swift RSA加解密 MZRSA_Swift
CryptoSwift 一、使用CommonCrypto进行MD5加密的代码 import Foundation import CommonCrypto extension String { var md5: String? { guard let data = self.data(using: .utf8) else { return ...
参考: CryptoSwift swift 5.0 RSA+AES加密插件CryptoSwift以及SwiftyRSA的使用 iOS中加密解密之CommonCrypto框架 Pure Swift 5 CommonCrypto AES Encryption 一、使用CryptoSwift进行AES加解密的代码 import Foundation import Crypto...
前言 在日常业务中,调用三方SDK或前后端传递图片时,经常需要将图片转换为Base64的字符串,以及一些字符串统一转换成base64后放到文件进行简单的加解密 一、图片与base64字符串进行相互转换 extension UIImage { // 将图片转表示base64值的字符串 func base64StrWithPrefix(isPngData: Bool = ...
参考: Disabling “Multipath Networking” in Settings>Developer Previous preparation error: The tunnel connection failed while the system tried to connect to the device.. The tunnel con...