gpt4 book ai didi

iOS/objective-C : Correct Way of Obtaining Meta Class Object

转载 作者:技术小花猫 更新时间:2023-10-29 11:05:00 28 4
gpt4 key购买 nike

以下哪项是获取元类的正确方法?

Class myMetaClass = objc_getMetaClass("NSString");

或者:

Class myMetaClass = object_getClass([NSString class]);
  • 它们有什么不同吗?

  • 正如此处第一位回答者链接的另一篇文章中所述:

请详细告诉我为什么 objc_getMetaClass(); 在某些情况下会中断

  • 在不同场景中使用它们的正确方法。

最佳答案

这两个函数都是正确的,但是 objc_getMetaClass("NSString") 只有在 NSString 注册到 Objective-C 运行时时才有效。如果您想获得它的元类,它几乎总是如此。

但如果您使用 Class myClass = objc_allocateClassPair(superClass,"my_own_class",0) 创建类,情况会略有不同。

my_own_class 尚未注册,因此如果您需要访问元类(以添加类方法),则必须使用 object_getClass(myClass)objc_getMetaClass("my_own_class") 将返回 nil

关于iOS/objective-C : Correct Way of Obtaining Meta Class Object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20902680/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com