Objective c语法

use*_*457 -1 syntax objective-c

我是Objective-C编程的新手.在许多教程中,我一直看到这种格式的代码:

[[classname function] function];
Run Code Online (Sandbox Code Playgroud)

例如:

[[NSString alloc] initwithformat:parameters];
Run Code Online (Sandbox Code Playgroud)

当我学习plist和词典时,我看到了这行代码:

[[self.objname objectAtIndex:indexPath.row] objectForKey:@"somename"];
Run Code Online (Sandbox Code Playgroud)

我相信它遵循语法: [[objectname function] function]

有人可以解释这种语法是如何工作的以及第一个和第二个例子之间的区别.

如果您可以为这些示例提供C或Java中的等效语句,那将非常有用.

Rob*_*ill 6

[ClassName methodName]是你如何调用类方法.Java中的等价物是Classname.methodName();

[object methodName]是你如何调用普通实例方法.Java中的等价物是object.methodName();

在Objective C中,您还可以在[]括号中"嵌套"调用.[[Classname method1] method2]等效于调用类方法method1,该方法返回一些对象,然后调用method2该对象.

Java中的等价物将是 Classname.method1().method2();

另请注意,在严格的Objective C术语中,您不"在对象上调用方法",而是"向对象发送消息".同样的事情,不同的话.