CocoaPods对三方库的管理探究

CocoaPods对三方库的管理探究
CocoaPods是iOS开发中经常被用到的第三方库管理工具,我们有必要深入了解一下它对项目产生了什么影响,以及它是如何工作的。 使用pod安装三方库 我们新建一个不带测试模块的名为FFDemo的Swift项目,它的目录结构是这样的 ├── FFDemo │   ├── AppDelegate.swift │   ├── Assets.xcassets │   ├── Base.lproj │   ├── Info.plist │   ├── SceneDelegate.swift │   └── ViewController.swift └── FF...

iOS实现HTTP认证之摘要认证-Digest

iOS实现HTTP认证之摘要认证-Digest
什么是Digest? 摘要访问认证是一种协议规定的Web服务器用来同网页浏览器进行认证信息协商的方法。它在密码发出前,先对其应用哈希函数,这相对于HTTP基本认证发送明文而言,更安全。 从技术上讲,摘要认证是使用随机数来阻止进行密码分析的MD5加密哈希函数应用. 1. 基本流程 客户端发起GET(PUT、POST、DELETE...)请求服务器响应401 Unauthorized,WWW-Authenticate指定认证算法,realm指定安全域...

GCD梳理与总结(一)队列、任务、执行任务的方式

GCD梳理与总结(一)队列、任务、执行任务的方式
GCD是iOS开发中常用的多线程技术,具有以下优点 可用于多核的并行运算。会自动利用更多的 CPU 内核。GCD 会自动管理线程的生命周期(创建线程、调度任务、销毁线程)。 但是由于其知识点细碎,API繁多,所以笔者决定抽空以写博客的方式对GCD进行梳理,总结,归纳和再学习。 首先我们来谈谈几个基本概念 任务 任务就是要执行的操作,也就是你在线程中执行的那段代码。在 GCD 中是放在 block...

SDWebImage的缓存策略

SDWebImage的缓存策略
**首先,SDWebImage 的图片缓存采用的是 Memory(内存) 和 Disk(硬盘) 双重 Cache 机制,SDImageCache 中有一个叫做 memCache 的属性,它是一个 NSCache 对象,用于实现我们对图片的 Memory Cache,其实就是接受系统的内存警告通知,然后清除掉自身的图片缓存。Disk Cache,也就是文件缓存,SDWebImage 会将图片存放到 NSCachesDirectory 目录中,然后为每一个缓存文件生成一个 md5 文件名, 存放到文件中。...

AutoLayout约束的使用

AutoLayout约束的使用
概述 在iOS 6之前,可以使用UIView的autoresizingMask属性进行自动适配,autoresizingMask是个枚举UIViewAutoresizing 。 typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) { UIViewAutoresizingNone = 0, UIViewAutoresizingFlexibleLeftMargin = 1 << 0, UIViewAutoresizingFlexibleWidth = 1 << 1, UIViewAutoresizingFlexibleRightMa...

iOS开发–探究iOS线程调用栈及符号化

iOS开发–探究iOS线程调用栈及符号化
探究iOS线程调用栈及符号化 概念 调用栈,也称为执行栈、控制栈、运行时栈与机器栈,是计算机科学中存储运行子程序的重要的数据结构,主要存放返回地址、本地变量、参数及环境传递,用于跟踪每个活动的子例程在完成执行后应该返回控制的点。 一个线程的调用栈如上图所示,它分为若干栈帧(frame),每个栈帧对应一个函数调用,如蓝色部分是DrawSquare函数的栈帧,它在运行过程中调用了DrawLine...

Swift 分包发送蓝牙数据

Swift 分包发送蓝牙数据
//分包发送蓝牙数据 是蓝牙单次可处理最大字节长度 let BLE_SEND_MAX_LEN = 20; func sendMsgWithSubPackage(msgData:NSData) { for i in stride(from: 0, to: msgData.count, by: BLE_SEND_MAX_LEN) { // 预加 最大包长度,如果依然小于总数据长度,可以取最大包数据大小 if ((i + BLE_SEND_MAX_LEN) < msgData.count) { let rangeStr = NSString(format: "%i,%i"...

iOS开发之UIMenu

iOS开发之UIMenu
iOS 13 引入 UIMenu 在 iOS 13 中引入,可以很方便的创建程序菜单和上下文菜单。 class ViewController: UIViewController { override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) navigationController?.isToolbarHidden = false // 菜单绑定到UIBarButtonItem(iOS 14的构造函数) let addNewItem = UIBarButtonItem(systemIte...

LSTTimer 高精度iOS计时器组件

LSTTimer 高精度iOS计时器组件
前言 在项目开发中,计时器任务的需求很多, LSTTimer的出现就是为了更好统一管理项目中的计时器任务.欢迎coder们发现问题或者提供更好的idea,一起努力完善 博客地址 github: https://github.com/LoSenTrad/LSTTimer简书: https://www.jianshu.com/p/4f05c7e26bb1 实现思路 LSTTimer单例设计, 内部持有一个NSTimer和计时任务池, 所有的计时任务都被添加到任务池里面; NSTimer每100...
Copyright © ios教程,苹果粉丝,苹果资讯,ios入门教程,ios学习,ios程序员,ios视频教程,ios粉丝网 保留所有权利.   Theme  Ality

用户登录