• Day17-最大子数组和

    🔗 LeetCode 53 - Maximum Subarray 📌 题目描述给你一个整数数组 nums,请你找出一个具有最大和的 连续子数组,并返回其最大和。 🔍 示例123输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6。 💡 解题思路:动态规划(Kadane’s Algorithm) dp[...
  • Day17-缓存策略 + URLProtocol 拦截

    一、iOS 缓存策略(NSURLRequest.CachePolicy)缓存策略决定了 请求是否使用缓存,以及如何使用缓存。它在 NSURLRequest 初始化时设置,对 NSURLSession 和 NSURLConnection 都生效。 常见策略说明: 策略 描述 .useProtocolCachePolicy 默认策略,遵循 HTTP 协议头(如 Cache-Contro...
  • Mach-O

    Mach-O 是 macOS 和 iOS 平台上使用的可执行文件格式。 Mach-O 文件格式用于 macOS 和 iOS 中的可执行文件、动态库和核心转储等。Mach-O 文件包含多个部分,每个部分都具有特定的结构和功能。 Mach-O 文件头Mach-O 文件的开始部分是文件头(MachHeader),它包含了文件的基本信息。文件头分为两种类型:32位(mach_header)和 64位...
  • Day16-无重复字符的最长子串

    🔗 LeetCode 3 - Longest Substring Without Repeating Characters 📌 题目描述给定一个字符串 s,请你找出其中不含有重复字符的最长子串的长度。 示例: 123输入: s = "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 💡 解题思路使...
  • Day16-AFNetworking底层原理

    AFNetworking 是基于 Apple 提供的 NSURLSession 和 NSURLConnection 封装的网络库(AFNetworking 3.0 以后完全基于 NSURLSession),它对网络请求、JSON/XML 解析、文件上传下载、网络监测等功能做了封装,使 iOS 开发者能够更方便地处理网络通信。 一、AFNetworking 架构总览AFNetwork...
  • 包体积

    包体积的影响包体积优化的必要性 下载转化率下降:每增加6M,应用下载转化率下降1%。 App Store限制:超过200MB的包,iOS 13以下用户无法通过蜂窝数据下载,iOS 13及以上用户需手动设置。 磁盘占用:大包体积占用更多存储空间,影响低存储用户。 用户下载意愿:大包体积减少用户下载意愿,尤其在蜂窝数据低数据模式下。 性能影响:包体积大增加启动时间和SIGKILL风险,降低基础体...
  • Day15-环形链表 II

    🔗 LeetCode 142 - 环形链表 II 📌 题目描述给定一个链表的头节点 head,返回链表开始入环的第一个节点。如果链表无环,则返回 null。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。 示例: 123输入:h...
  • Day15-NSURLSession 断点续传 + 网络封装

    一、NSURLSession 下载机制原理类型回顾: NSURLSessionDataTask: 用于请求和响应小数据。 NSURLSessionDownloadTask: 用于下载大文件,支持断点续传。 NSURLSessionUploadTask: 用于上传数据。 对于断点续传,NSURLSessionDownloadTask 是唯一支持此功能的类型。 二、断点续传机制详解1. 如何...
  • 性能分析

    性能分析-工具开源工具 FLEX (Flipboard Explorer) 是一个非常受欢迎的开源 iOS 内部工具,提供了强大的 UI,允许开发者在运行时检查应用的视图层次结构、网络请求、数据库、用户偏好设置等。适合开发者在应用内实时调试和检查性能问题。 XCTest XCTest 是 Apple 官方的单元测试框架,支持性能测试。开发者可以通过 measure 方法来衡量代码块的执行时间...
  • Day14-移动零

    🔗 LeetCode 283 - Move Zeroes 📌 题目描述给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序不变。 示例: 12输入: [0,1,0,3,12]输出: [1,3,12,0,0] 💡 解题思路 用一个指针 lastNonZeroIndex 来记录下一个应该放非零元素的位置; 遍历一遍数组,遇到非零就放到该位置; 遍...
12346