NSString * myString = [NSString string]是什么意思?

时间:2012-09-15 21:48:33

标签: objective-c nsstring

我正在读一本学习Objective-c的书,但我不明白这段代码:

NSString* myString = [NSString string];

我知道您键入[ object method ]object.method是否会调用类中的方法,但[ Class method ]的含义是什么?

4 个答案:

答案 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”