美文网首页
category为什么不能添加属性

category为什么不能添加属性

作者: 三岁就很乖 | 来源:发表于2017-03-24 09:14 被阅读129次

category是在程序加载运行的时候,才加载到内存中,此时各个类的内存布局已经确定了,不可以再更改。

可以加属性,但是没有对应的成员变量存储区域。类的成员变量存储区在编译时就确定了。所以只能定义成@dynamic,运行时关联一块内存到对象。

在runtime中存在一个类型为AssociationHashMap的哈希映射表保存着对象动态添加的属性,每个对象以自身地址为key维护着一个绑定属性表,我们动态添加的属性就都存储在这个表里,这也是动态添加property能成功的基础。

相关文章

  • Category 的 本质

    Category的实现原理,以及Category为什么只能添加方法不能添加属性 ?category的底层结构是st...

  • iOS开发 Category

    1.说下category原理,以及category为什么只能添加方法不能添加属性? 分类的实现是将category...

  • iOS Category分类

    1.说下category原理,以及category为什么只能添加方法不能添加属性? 分类的实现是将category...

  • 笔记-关联对象

    目录 面试题 伪代码实现 Category添加属性的几种用法 Category为什么不能添加成员变量 底层源码解读...

  • 02·iOS 面试题·Category 的实现原理,以及 Cat

    前言 这道面试题主要问两个知识点:Category 的实现原理、Category 为什么能添加方法不能添加属性?对...

  • 分析Category、load、initialize的加载原理

    先来抛出3个问题:1.Category为什么不能直接添加属性?2.Category中有load方法吗?load方法...

  • category为什么不能添加属性

    category是在程序加载运行的时候,才加载到内存中,此时各个类的内存布局已经确定了,不可以再更改。 可以加属性...

  • category为什么不能添加属性

    那么根本原因又是什么呢?原因:分类没有自己的isa指针.“类最开始生成了很多基本属性,比如IvarList,Met...

  • category为什么不能添加属性

    首先要明白什么是属性: 属性 = ivar + setter + getter(成员变量+setter方法+get...

  • Category 和 Extension 的区别.

    类 Extension 可以为类添加属性和方法。使用格式. 类 Category 只能添加方法不能添加属性,添加属...

网友评论

      本文标题:category为什么不能添加属性

      本文链接:https://www.haomeiwen.com/subject/pvpxottx.html