稀土掘金 稀土掘金
    • 首页
    • 沸点
    • 课程
    • AI Coding
    • 数据标注
    • 更多
      • 直播
      • 活动
      • APP
      • 插件
    • 直播
    • 活动
    • APP
    • 插件
      • 搜索历史 清空
        • 写文章
        • 发沸点
        • 写笔记
        • 写代码
        • 草稿箱
        创作灵感 查看更多
  • 后端
  • 前端
  • Android
  • iOS
  • 人工智能
  • 开发工具
  • 代码人生
  • 阅读
  • 2-6.【OC】【内存管理】ARC 下,__strong 的真实含义是什么?
    在 ARC 环境下,__strong 是 Objective-C 指针的默认修饰符。它的真实含义可以从所有权语义、生命周期管理以及底层运行时实现三个维度来解剖。 简单来说,__strong 的本质是:
    • 项阿丑
    • 5天前
    • 4
    • 点赞
    • 评论
    Objective-C
  • 2-5.【OC】【内存管理】ARC 编译期插入了哪些代码?
    在 ARC(Automatic Reference Counting)模式下,编译器(Clang)并不是简单地替你手写了 retain/release,它实际上进行了一场**“静默的局部最优解计算”*
    • 项阿丑
    • 5天前
    • 9
    • 点赞
    • 评论
    Objective-C
  • 2-4.【OC】【内存管理】MRC 下,下面代码是否安全?为什么?
    在 MRC(Manual Reference Counting)环境下,这段代码是安全的,但它代表了一种极度不规范且容易埋坑的写法。 虽然最终内存引用计数是平衡的,但它违反了 Objective-C
    • 项阿丑
    • 5天前
    • 5
    • 点赞
    • 评论
    Objective-C
  • 2-3.【OC】【内存管理】autorelease 在 MRC 下到底做了什么?
    在 MRC 下,autorelease 的本质是 “延迟释放” 。它既不是立即销毁对象,也不是增加引用计数,而是将对象的所有权转交给了一个名为 AutoreleasePool(自动释放池) 的管理器。
    • 项阿丑
    • 5天前
    • 7
    • 点赞
    • 评论
    Objective-C
  • 2-2.【OC】【内存管理】alloc / new / copy / mutableCopy 与 retain 在“所有权”上的本质区别是什么?
    虽然这五个操作最终都会导致对象的“引用计数(Reference Count)”增加,但从所有权(Ownership)的哲学和内存物理演进来看,它们有着本质的区别。 我们可以把 alloc/new/co
    • 项阿丑
    • 5天前
    • 5
    • 点赞
    • 评论
    Objective-C
  • 2-1.【OC】【内存管理】MRC 下,“谁拥有对象?谁负责释放?”的准确判定规则是什么?
    在 MRC(Manual Reference Counting)时代,判定“谁负责释放”并不看心情,而是遵循一套极其严苛的、基于方法名关键字的黄金法则。 这套规则由苹果定义,本质上是把 C 语言对内存
    • 项阿丑
    • 5天前
    • 5
    • 点赞
    • 评论
    Objective-C
  • 1-20.【OC】【基础】在什么场景下,你会刻意避免使用 Objective-C 方法调用,而改用 C 函数或静态方法?
    虽然 Objective-C 的消息机制带来了极大的灵活性,但在某些对性能、安全或确定性有极致要求的场景下,开发者会选择“跳过” objc_msgSend,转而使用 C 函数或 C++ 静态方法。 以
    • 项阿丑
    • 5天前
    • 4
    • 点赞
    • 评论
    Objective-C
  • 1-19.【OC】【基础】Objective-C 的方法调用和 C 函数调用,在 ABI 层面有什么本质不同?
    从 ABI(应用二进制接口) 的层面来看,Objective-C 的方法调用与 C 函数调用的区别,本质上是**“直接跳转”与“间接分发”**的对立。 在二进制指令级别,这两者的处理方式决定了它们的执
    • 项阿丑
    • 5天前
    • 8
    • 点赞
    • 评论
    Objective-C
  • 1-18.【OC】【基础】Method Cache 的作用是什么?
    Method Cache(方法缓存) 的作用可以用四个字概括:变慢为快。 如果没有缓存,Objective-C 每一行 [obj message] 都要经历昂贵的方法列表遍历和继承链递归查找。而 Me
    • 项阿丑
    • 5天前
    • 6
    • 点赞
    • 评论
    Objective-C
  • 1-17.【OC】【基础】为什么 Objective-C 的方法调用“看起来慢”?
    Objective-C 的方法调用“看起来慢”,是因为它在底层将函数调用变成了数据库查询。 在传统的 C++ 或 Swift 中,调用方法通常是直接跳转到内存地址(静态派发)或查找偏移量固定的虚函数表
    • 项阿丑
    • 5天前
    • 9
    • 点赞
    • 评论
    Objective-C
  • 1-16.【OC】【基础】objc_msgSend 的完整调用流程是怎样的?
    objc_msgSend 是 Objective-C 的灵魂。为了保证极高的执行效率,它的核心逻辑是用汇编语言编写的。其调用流程可以分为三个阶段:消息发送(快速与慢速路径) 、动态方法解析、消息转发。
    • 项阿丑
    • 5天前
    • 7
    • 点赞
    • 评论
    Objective-C
  • 1-15.【OC】【基础】为什么 Swift 的 struct / enum 很难完整桥接到 Objective-C?
    Swift 的 struct(结构体)和 enum(枚举)无法完整桥接到 Objective-C,本质上是因为 Swift 迈向了“现代静态语言”,而 Objective-C 仍被锁死在“80 年代
    • 项阿丑
    • 5天前
    • 9
    • 点赞
    • 评论
    Objective-C
  • 1-14.【OC】【基础】为什么 Objective-C 可以在运行时动态添加方法?
    Objective-C 之所以能在运行时动态添加方法,是因为它在底层将“类”设计成了一个可变的数据结构,并且拥有一套基于名称查找而非地址偏移的消息分发系统。 这可以从以下三个层面来透彻理解: 1. 类
    • 项阿丑
    • 5天前
    • 8
    • 点赞
    • 评论
    Objective-C
  • 1-13.【OC】【基础】Objective-C 是如何支持继承链方法查找的?
    Objective-C 的继承链方法查找,本质上是围绕 objc_msgSend 函数展开的一场在 objc_class 结构体 之间的递归搜索。 由于 Objective-C 的动态性,它不会在编译
    • 项阿丑
    • 5天前
    • 3
    • 点赞
    • 评论
    Objective-C
  • 1-12.【OC】【基础】如果你拿到一个 Class 对象,它在内存中本质上是什么?
    在内存中它本质上是一个 objc_class 结构体。 虽然在 Objective-C 层面它看起来是一个神秘的“类”,但在 C 语言底层,它是一个有着固定格式的、存储了该类所有“配置信息”的单例结构
    • 项阿丑
    • 5天前
    • 8
    • 点赞
    • 评论
    Objective-C
  • 1-11.【OC】【基础】isa 指针在现代 Objective-C 中经历了哪些演进?
    sa 指针从一个“纯粹的内存地址”变成了一个“高度压缩的复合数据结构”,这标志着 Apple 从“追随标准 C 结构”向“极致利用硬件性能”的转型。 以下是 isa 指针经历的三个主要阶段: 1. 早
    • 项阿丑
    • 5天前
    • 9
    • 点赞
    • 评论
    Objective-C
  • 1-10.【OC】【基础】解释 实例对象 / 类对象 / 元类对象 的关系
    在 Objective-C 中,实例、类、元类之间的关系被称为 “isa 指针走线图” 。这套设计是 Objective-C 能够实现“万物皆对象”和“运行时动态查找方法”的核心。 它们三者的关系可以
    • 项阿丑
    • 5天前
    • 5
    • 点赞
    • 评论
    Objective-C
  • 1-9.【OC】【基础】Objective-C 对象在内存中的最小结构是什么?
    在 Objective-C 中,一个对象在内存中的最小结构本质上就是一个 C 语言结构体。它的“极简版”只包含一个成员,即指向类信息的指针。 1. 最小结构的定义 在 Runtime 源码(objc.
    • 项阿丑
    • 5天前
    • 5
    • 点赞
    • 评论
    Objective-C
  • 1-8.【OC】【基础】id、instancetype、Class 在类型系统中的本质区别是什么?
    在 Objective-C 这个“混血”系统中,这三个关键字分别代表了绝对动态、编译期约束和元数据描述。我们可以通过它们的底层定义和在消息机制中的行为来拆解。 1. id:万能的动态指针 本质:指向
    • 项阿丑
    • 5天前
    • 8
    • 点赞
    • 评论
    Objective-C
  • 1-7.【OC】【基础】从工程演进角度看,Objective-C 的语言模型为什么很难再继续演进?
    从工程演进的角度来看,Objective-C 并不是因为“功能不够强”而停滞,而是因为它那套 C 的物理布局 + Smalltalk 的动态消息 模型已经触及了现代软件工程的“兼容性天花板”。 以下是
    • 项阿丑
    • 5天前
    • 10
    • 点赞
    • 评论
    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