我刚刚开始学习目标C而且我对这个陈述感到有点困惑。
+(NSMutableArray *) array;
这就是我的理解:
+
表示这是一个响应类的方法(这使得它成为静态方法)
NSMutableArray
是一个可以更改尺寸的数组
*
指针(内存位置参考)
array
是NSMutableArray类型的数组名称。
()
为什么这个方法需要围绕对象指针的括号'(NSMutableArray *)'
我不知道如何概念化这些部分的整体意义。你能解释一下吗?
答案 0 :(得分:2)
在C语法中,这将写为:
static NSMutableArray *array();
NSMutableArray *
是返回类型。 array
是方法的名称。没有争论,但如果有的话就是这样:
+ (ReturnType)methodName:(ArgType)argName;
或者如果有多个参数:
+ (ReturnType)firstPartOfMethodName:(Arg1Type)arg1Name secondPartOfMethodName:(Arg2Type)arg2Name;
对于很多Obj-C新人来说,这可能会让人感到困惑。方法名称在参数之间拆分的事实对于来自其他语言的大多数程序员来说非常混乱。
以这种方式订购的原因是为了清楚论证。使用以下方法时:
- (id)initWithBitmapDataPlanes:(unsigned char **)planes
pixelsWide:(NSInteger)width
pixelsHigh:(NSInteger)height
bitsPerSample:(NSInteger)bps
samplesPerPixel:(NSInteger)spp
hasAlpha:(BOOL)alpha
isPlanar:(BOOL)isPlanar
colorSpaceName:(NSString *)colorSpaceName
bitmapFormat:(NSBitmapFormat)bitmapFormat
bytesPerRow:(NSInteger)rowBytes
bitsPerPixel:(NSInteger)pixelBits
(这是一个来自Cocoa框架的真正方法,以longest而闻名),你知道哪个参数放在第一,第二,第三等位置是非常有用的。
答案 1 :(得分:1)
1,2,3陈述是正确的。但第四个是,array
是方法的名称。第五个是,array
方法的返回类型是NSMutableArray *
。
最后array
是类方法,它有NSMutableArray *
返回类型,也没有任何参数。
看起来像- (void)viewDidLoad
。 viewDidLoad
是实例方法,它具有void
返回类型,也没有任何参数。