gpt4 book ai didi

objective-c - 为什么在调用类方法之前通过+(Class)class发送一个类?

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

我一直在浏览 Sketch,这是他们随 Xcode 一起提供的一个示例程序,我不断看到这样的东西(尽管并不总是这样):

[[MyClass class] classMethod]

现在,自 MyClass不是该类的实例,我会这样做:

[MyClass classMethod]

虽然作为实验,我能够通过覆盖 + (Class)class 来区分上述两个语句。并返回另一个类!如果你想这样做,你需要以前的版本才能工作,所以我可以看到可能有这个用法,但真的有吗?

像这样篡改 +class 听起来是个糟糕的主意,有的话还请赐教。谢谢!


要查看一些示例,请查看方法 -copy:SKTGraphicsView.mDeveloper/Examples/Sketch/ 中找到的 Sketch 程序中.

最佳答案

在您引用的情况下,我真的没有看到调用 +class 的任何充分理由。但是,肯定有调用 [[self class] doSomething] 而不是 [[MyClass class] doSomething] 的情况。在第一种情况下,如果对象已被子类化,[self class] 可以返回正确的结果。在第二种情况下,您将始终获得 MyClass 类对象,这意味着 MySubClass 无法有效覆盖 +doSomething 类方法。

关于objective-c - 为什么在调用类方法之前通过+(Class)class发送一个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5850515/

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