它位于函数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]语法有什么作用?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)