2011-08-04 122 views
7

这可能听起来很愚蠢,但为什么Objective-C中的某些函数/方法使用括号而不是方括号?Objective-C中圆括号与方括号之间的区别

E.g.为什么它不是[someObject NSLog:@“Hello World!”];?

何时应该使用圆括号而不是方括号?谢谢。

回答

11

圆括号用于C函数(如CGRectMake),而括号用于objective-c方法。

见例如:

// Method to create C Structure 
CGRect frame = CGRectMake(0, 0, 100, 100); 

// Objective-C method call (sending message) 
UIButton *button = [[UIButton alloc] initWithFrame:frame]; 
+0

感谢dtuckernet。所以即使它有NS前缀它不一定Objective-C方法... – Leon

+0

正确。 NSMakeRect(用于OS X开发)是带有NS前缀的C函数的示例。 – dtuckernet

+0

括号也用于宏,它们看起来像函数调用。 – progrmr

相关问题