稀土掘金 稀土掘金
    • 首页
    • 沸点
    • 课程
    • 数据标注 HOT
    • AI Coding
    • 更多
      • 直播
      • 活动
      • APP
      • 插件
    • 直播
    • 活动
    • APP
    • 插件
      • 搜索历史 清空
        • 写文章
        • 发沸点
        • 写笔记
        • 写代码
        • 草稿箱
        创作灵感 查看更多
  • 后端
  • 前端
  • Android
  • iOS
  • 人工智能
  • 开发工具
  • 代码人生
  • 阅读
  • 如何将音乐从 iCloud 传输到Android设备
    换了新的Android手机或平板电脑后,或许你想把 iCloud 上的音乐转移到Android上?这似乎是一项艰巨的任务,但有一些有效的方法可供选择,包括使用 Apple Music、手动传输、 An
    • Coolmuster
    • 2小时前
    • 5
    • 点赞
    • 评论
    iOS
  • 7-15.【OC】【RunLoop】如何结合 RunLoop / Timer / Observer 来做高精度 UI 动画或 FPS 统计?
    要实现高精度的 UI 动画或精准的 FPS 统计,核心思路是摆脱主线程业务逻辑的干扰,直接监听屏幕刷新信号(Vsync)与 RunLoop 的状态切换。 以下是结合这三大组件实现高级性能监控和动态渲染
    • 项阿丑
    • 2小时前
    • 3
    • 点赞
    • 评论
    Objective-C
  • 7-14.【OC】【RunLoop】Timer 捕获 self 的 ARC 语义与 Block 捕获规则有什么相似或不同?
    这是一个非常深入的切入点。虽然两者在表现上都会导致“循环引用”,但在 ARC(自动引用计数) 的底层处理逻辑和“谁在持有谁”的权力结构上,有着本质的区别。 1. 相似之处:强引用的结果 无论是 Tim
    • 项阿丑
    • 2小时前
    • 2
    • 点赞
    • 评论
    Objective-C
  • 7-13.【OC】【RunLoop】Timer / DisplayLink 的销毁时机为什么重要?
    Timer 和 CADisplayLink 的销毁时机之所以至关重要,是因为它们的设计深度耦合了 内存管理(ARC) 、线程生命周期 以及 CPU/GPU 资源消耗。 如果销毁时机不当,轻则导致内存泄
    • 项阿丑
    • 2小时前
    • 4
    • 点赞
    • 评论
    Objective-C
  • 7-12.【OC】【RunLoop】NSTimer 放在非主线程或非默认 Mode 下会发生什么?
    将 NSTimer 放在非主线程或非默认 Mode 下,会直接触及 RunLoop 的底层调度机制。这通常是“定时器失效”或“线程内存泄露”的主要诱因。 以下是两种场景下的具体表现与底层原因: 1.
    • 项阿丑
    • 2小时前
    • 5
    • 点赞
    • 评论
    Objective-C
  • 7-11.【OC】【RunLoop】CADisplayLink 的使用场景和与 NSTimer 的区别是什么?
    CADisplayLink 是一个特殊的定时器,它与屏幕的刷新频率(Vsync 信号)完全同步。在 iOS 开发中,它是处理高性能动画和游戏循环的首选工具。 1. 核心区别:同步机制与精度 虽然两者都
    • 项阿丑
    • 2小时前
    • 3
    • 点赞
    • 评论
    Objective-C
  • 7-10.【OC】【RunLoop】NSTimer 的正确创建方式和销毁姿势是什么?
    要正确使用 NSTimer(或 Swift 中的 Timer),必须平衡好 RunLoop 模式、内存管理和线程安全这三个维度。 1. 正确的创建姿势 根据应用场景的不同,创建方式分为两类: A. 自
    • 项阿丑
    • 2小时前
    • 3
    • 点赞
    • 评论
    Objective-C
  • 7-9.【OC】【RunLoop】NSTimer 为什么容易产生 retain cycle?
    NSTimer 产生循环引用(Retain Cycle)的根本原因在于其 设计模式 与 内存管理机制 之间的冲突。 1. 核心矛盾:谁持有谁? 在常规的委托(Delegate)模式中,通常是 weak
    • 项阿丑
    • 2小时前
    • 2
    • 点赞
    • 评论
    Objective-C
  • 7-8.【OC】【RunLoop】CFRunLoopMode / NSRunLoopMode 的 Mode 切换是如何影响事件调度的?
    RunLoop 的 Mode 切换本质上是一场事件源的“物理隔离” 。它通过在运行时动态切换数据集合,强制让线程只关注当前模式下的任务。 我们可以从底层数据结构和调度逻辑两个维度来剖析这一过程: 1.
    • 项阿丑
    • 2小时前
    • 1
    • 点赞
    • 评论
    Objective-C
  • 7-7.【OC】【RunLoop】RunLoop 的退出条件是什么?如何主动让 RunLoop 停止?
    unLoop 的生命周期管理非常严谨。要理解它的退出,首先要明白它的运行核心——Mode Item。如果一个 Mode 里没有任何任务可做,RunLoop 就像失去了燃料的引擎,会自动熄火。 1. R
    • 项阿丑
    • 2小时前
    • 2
    • 点赞
    • 评论
    Objective-C
  • 7-6.【OC】【RunLoop】RunLoop observer 可以用来做哪些高级监控或优化?
    CFRunLoopObserver 是深入 iOS 性能底层的“探针”。通过监听 RunLoop 的状态切换,可以实现许多在普通业务层无法完成的系统级优化。 以下是 Observer 的四大高级应用场
    • 项阿丑
    • 2小时前
    • 2
    • 点赞
    • 评论
    Objective-C
  • 7-5.【OC】【RunLoop】RunLoop 的循环机制是怎样的?
    RunLoop 的循环机制本质上是一个受操作系统内核(Mach)驱动的 Event Loop。它通过一套精密的状态机,确保线程在有事做时全速运行,在无事做时进入真正的“深度睡眠”,从而平衡响应速度与能
    • 项阿丑
    • 2小时前
    • 3
    • 点赞
    • 评论
    Objective-C
  • 7-4.【OC】【RunLoop】主线程卡顿的根源与 RunLoop 有哪些关系?为什么 UI 更新和事件处理会被阻塞?
    主线程卡顿的根源与 RunLoop 有哪些关系?为什么 UI 更新和事件处理会被阻塞?CFRunLoopObserver 如何用来调试卡顿? 主线程卡顿(Jank)的本质是 RunLoop 的循环频率
    • 项阿丑
    • 2小时前
    • 3
    • 点赞
    • 评论
    Objective-C
  • 7-3.【OC】【RunLoop】RunLoop 的三大入口 / 三大组件是什么?并说明各自职责。
    从底层的 CFRunLoop.c 源码结构来看,RunLoop 的运行完全依赖于它的三个核心组件。通常我们称之为 Source、Timer 和 Observer。 这三个组件被统称为 Mode Ite
    • 项阿丑
    • 2小时前
    • 3
    • 点赞
    • 评论
    Objective-C
  • 7-2.【OC】【RunLoop】RunLoop 的 Mode 有什么真实意义?为什么 NSTimer 在不同 Mode 下表现不同?
    RunLoop 的 Mode(模式) 是 iOS 性能优化的核心设计。它的真实意义在于隔离:通过将不同类型的事件(Source/Timer/Observer)分发到不同的组里,确保在执行高优先级任务(
    • 项阿丑
    • 2小时前
    • 3
    • 点赞
    • 评论
    Objective-C
  • 7-1.【OC】【RunLoop】CFRunLoop 与 NSRunLoop 的关系是什么?它们共享数据结构吗?性能差异在哪里?
    在 iOS 和 macOS 开发中,RunLoop 是维持应用持续运行的核心机制。理解 NSRunLoop 与 CFRunLoop 的关系,本质上是理解 Foundation 框架与 Core Fou
    • 项阿丑
    • 2小时前
    • 3
    • 点赞
    • 评论
    Objective-C
  • 6-15.【OC】【KVC/KVO】在现代项目中,如果想替代 KVO,有哪些可行方案?
    1. 原生首选:Swift 属性观察器 (didSet / willSet) 这是最简单、性能最高,也是最符合 Swift 直觉的方案。 适用场景: 类内部逻辑、简单的组件间通信。 优点: 强类型检查
    • 项阿丑
    • 2小时前
    • 3
    • 点赞
    • 评论
    Objective-C
  • 6-14.【OC】【KVC/KVO】KVO 在 ARC 下是如何管理 observer 的引用的?弱引用 / 强引用,Runtime 是怎么实现的?
    KVO 在 ARC 下依然使用“不安全且不自动置为 nil”的原始指针(unsafe_unretained)来管理观察者。 它既不是强引用,也不是弱引用(Weak)。这种设计是导致 KVO 容易崩溃的
    • 项阿丑
    • 2小时前
    • 3
    • 点赞
    • 评论
    Objective-C
  • 6-13.【OC】【KVC/KVO】Swift 的 KVO 为什么这么别扭?
    Swift 的 KVO 让人感到“别扭”,本质是因为 KVO 是 Objective-C Runtime 的强行产物,而 Swift 是一门强类型、静态且追求内存安全的现代语言。 这种冲突体现在机制底
    • 项阿丑
    • 2小时前
    • 3
    • 点赞
    • 评论
    Objective-C
  • 6-12.【OC】【KVC/KVO】KVO 移除 observer 的正确顺序是什么?如果移除晚了或者对象已经 dealloc,会发生什么?
    在 KVO 的生命周期管理中,移除观察者的时机和顺序至关重要。如果处理不当,会直接导致程序崩溃或逻辑异常。 1. 移除 Observer 的正确顺序与时机 核心原则:先解绑,后销毁。 最晚时机: 必须
    • 项阿丑
    • 2小时前
    • 2
    • 点赞
    • 评论
    Objective-C
  • 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30