gpt4 book ai didi

objective-c - [ClassName class] 背后发生了什么?

转载 作者:搜寻专家 更新时间:2023-10-30 20:18:40 26 4
gpt4 key购买 nike

我们使用 [ClassName class] 来检查弱链接类或新版本 iOS 中的类。 [ClassName class] 背后发生了什么?它会通过 NSClassFromString 吗?

最佳答案

请记住,在 obj-c 中,您可以向 nil 发送消息。

我怀疑正在发生的事情是 ClassName 在被运行时加载之前为 nil。如果它从未加载,那么您基本上是将类消息发送给 nil,根据文档,它会返回 0/nil。

根据 the docs :

This works because if a weakly linked class is not available, sending a message to it is like sending a message to nil. If you subclass a weakly linked class and the superclass is unavailable, then the subclass also appears unavailable.

重要的是,要使其正常工作,框架必须在其类上支持 NS_CLASS_AVAILABLE(10_5, 2_0) 宏。

关于objective-c - [ClassName class] 背后发生了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19529760/

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