gpt4 book ai didi

objective-c - [SomeClass self] 语法有什么作用?

转载 作者:太空狗 更新时间:2023-10-30 03:49:57 25 4
gpt4 key购买 nike

我目前正在研究 Apple 为 Sketch 提供的示例代码,我偶然发现了一些我以前从未见过的语法。它在 SKTGraphicView.m 中的函数 moveSelectedGraphicsWithEvent:

NSRect selBounds = [[SKTGraphic self] boundsOfGraphics:selGraphics];

我以前从未见过 [SomeClass self] 语法。在这种情况下,selfNSView 的子类,boundsOfGraphics:SKTGraphic 的类方法,它是一个子类的 NSObject

最佳答案

self方法在 NSObject 中定义协议(protocol),因此每个对象,无论是类的实例还是类对象(类型 Class)都支持该方法。它只是返回调用它的对象,例如:

- (id) self { return self; }

所以 self在实例上返回实例,在类对象上返回类对象。

因此以下内容成立:[x self] == xYES对于所有实例和类对象 x

你的行相当于:

NSRect selBounds = [SKTGraphic boundsOfGraphics:selGraphics];

这就是它的作用。至于苹果为什么这样写,那是另一个问题......

关于objective-c - [SomeClass self] 语法有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22565731/

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