OC运行时Objective-C Runtime 是 Objective-C 语言的核心部分,它是一套 C 语言库,负责实现动态特性,如动态类型检查、动态消息传递、动态方法解析等。Objective-C 作为一种动态语言,在编译时并不会将所有信息都确定下来,而是通过 Runtime 来在运行时处理对象和消息的调用。
在 Objective-C 中,方法调用实际上是通过向对象发送消息来实现的。...
🔗 LeetCode 198 - House Robber
📌 题目描述你是一个专业的小偷,计划偷窃沿街的房屋。每个房屋都有一定金额的现金风险,唯一的限制是 不能偷相邻的房子。
给定一个整数数组 nums,其中 nums[i] 是第 i 个房子中的金钱数,返回你在不触发警报的情况下能够偷窃到的 最大金额。
🔍 示例123输入: nums = [1,2,3,1]输出: 4解释: 偷窃房...
一、模块化设计概念模块化的核心目标是 解耦,将一个大型应用拆分为若干功能模块(Feature Module),如用户模块、支付模块、直播模块等,各模块可独立开发、编译、测试。
优势
降低耦合,提高复用性
提高团队并行开发效率
支持增量构建、热修复、动态下发
为组件化和插件化打下基础
二、iOS 模块化架构设计方案1. 模块划分方式按功能、业务域或技术层进行模块拆分:
功能模块:登录模块、...
🔗 LeetCode 206 - Reverse Linked List
📌 题目描述给你单链表的头节点 head,请你反转链表,并返回反转后的链表。
🔍 示例12输入: head = [1,2,3,4,5]输出: [5,4,3,2,1]
💡 解题思路链表反转是经典题目,可通过迭代或递归实现。
迭代做法:
使用 prev 指针保存上一个节点;
每次迭代,将当前节点的 next...
一、MVC(Model-View-Controller)组成角色:
Model:数据模型,负责业务逻辑和数据操作。
View:视图层,展示 UI,不处理逻辑。
Controller:控制器,连接 Model 和 View,处理交互逻辑。
优点:
简单易懂,开发快速。
Apple 官方推荐,UIKit 默认架构。
缺点:
控制器容易臃肿(Massive View Controlle...
概述静态程序分析是一种在不执行代码的情况下,对代码进行分析以发现潜在问题、优化代码质量或检测安全漏洞的方法。
静态分析方法有:
语法检查 (Syntax Checking)
代码规范检查 (Linting)
数据流分析 (Data Flow Analysis)
控制流分析 (Control Flow Analysis)
安全漏洞检测 (Security Vulnerability Dete...
🔗 LeetCode 200 - Number of Islands
📌 题目描述给你一个由 ‘1’(陆地)和 ‘0’(水)组成的二维网格 grid,请你计算网格中岛屿的数量。
岛屿总是被水包围,并且每座岛屿只能由水平方向或垂直方向相邻的陆地连接而成。
🔍 示例12345678输入: grid = [ ["1","1","0&quo...
一、iOS 离线缓存架构图(逻辑层级)12345678910111213141516┌────────────────────────────┐│ 用户操作层 │├────────────────────────────┤│ ViewController / ViewModel │├─────────────┬──────────────┤│ 请求数据...
🔗 LeetCode 39 - Combination Sum
📌 题目描述给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target,找出 candidates 中可以使数字和为 target 的所有不同组合。
你可以无限次使用 candidates 中的数字。
🔍 示例123输入: candidates = [2,3,6,7], target = 7输出...
iOS 的数据持久化是指将应用运行过程中产生的数据保存到设备的本地存储中,以便下次启动或在需要时读取。根据数据的结构复杂度、读写频率、安全性要求等不同场景,iOS 提供了多种持久化方案:
常见的数据持久化方式1. NSUserDefaults / UserDefaults
适用场景:轻量级数据,如设置项、登录状态、首选项。
存储类型:基本类型(String、Bool、Int、Fl...