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

objective-c – [SomeClass self]语法有什么作用?,第1张

概述我目前正在研究Apple for Sketch提供的示例代码,我偶然发现了一些我以前从未见过的语法. 它位于函数moveSelectedGraphicsWithEvent中的SKTGraphicView.m中: NSRect selBounds = [[SKTGraphic self] boundsOfGraphics:selGraphics]; 我以前从未见过[SomeClass self]语法 我目前正在研究Apple for Sketch提供的示例代码,我偶然发现了一些我以前从未见过的语法.
它位于函数moveSelectedGraphicsWithEvent中的SKTGraphicVIEw.m中:

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

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

解决方法 self方法在NSObject协议中定义,因此每个对象都是类的实例或类对象(类型为Class)支持该方法.它只返回它所调用的对象,即:

- (ID) self { return self; }

因此,实例上的self返回实例,而类对象返回类对象.

因此,以下成立:[x self] == x对于所有实例和类对象x都为YES

你的行相当于:

NSRect selBounds = [SKTGraphic boundsOfGraphics:selGraphics];

这就是它的作用.至于为什么Apple用这种方式写它,这是一个不同的问题……

总结

以上是内存溢出为你收集整理的objective-c – [SomeClass self]语法有什么作用?全部内容,希望文章能够帮你解决objective-c – [SomeClass self]语法有什么作用?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1006060.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存