我正在读一本学习Objective-c的书,但我不明白这段代码:
NSString* myString = [NSString string];
我知道您键入[ object method ]
或object.method
是否会调用类中的方法,但[ Class method ]
的含义是什么?
答案 0 :(得分:1)
[Class method]
是class method。
阅读documentation了解更多详情。
顺便说一下,你没有在Objective-C中写object.method
。点语法仅用于访问或设置对象的属性。
答案 1 :(得分:0)
这是一个类方法 - 它基本上是一个在类本身上调用的方法,而不是在类的特定实例(对象)上调用。有关详细说明,请参阅this question。
答案 2 :(得分:0)
第一行创建一个新的空字符串。长度0.这只是@“”。您可以通过NSString *myString = @"";
完成相同的操作.Class vs Instances是您的最后一个问题。类是“我想做这个方法给我的东西”。如果您使用的是[NSString string]
,那么基本上您正在使用[[NSString alloc] init]
。因此,该实例允许您访问适用于您的Class实例(也称为myString)的方法和变量,因此[myString length]
。你做不到[NSString length]
。
类方法是获取实例(或获取类类型)的接口,而实例方法适用于您实际使用的该类的内存实例。
对于错综复杂的答案感到抱歉。
答案 3 :(得分:0)
您可能知道,不仅可以将方法发送到类的实例。 您还可以将方法发送到方法的类对象。 此特定方法返回一个空字符串并将其赋予“myString”。 有关类对象的更多信息,请阅读Apple文档“The Objective-C Programming Language”