什么是class_setIvarLayout和class_getIvarLayout?

Bry*_*hen 7 objective-c objective-c-runtime

我试图在运行时动态创建objc类,我需要Ivar在创建的类中添加一些.我发现class_addIvar哪些应该做我想要的,但我也发现了这些功能:

  • class_setIvarLayout
  • class_getIvarLayout
  • class_getWeakIvarLayout
  • class_setWeakIvarLayout

文档并没有真正说出有关这些方法的任何有用信息,我也无法从网上找到任何有用的解释.那他们是什么?如果我想做点什么,我是否需要使用它们Ivar

一二三*_*一二三 8

class_*IvarLayout垃圾收集器使用这些方法(如果/当您使用它时)来确定需要扫描对象内存的哪些区域以进行强/弱引用.

您不太可能需要调用这些方法; 调用时会生成相应的布局objc_registerClassPair.