2012-01-02 71 views

回答

7

我不是一个Ruby程序员,所以我可能会丢失一些微妙,但似乎andand使得它让您可以安全链的方法调用,即使一个方法调用可能返回零。这是在Objective-C中构建的,因为调用方法(实际上正确地称为发送消息)为零是安全的并且完全可以接受的。消息总是返回零,基本上没有任何操作。在Objective-C,这是好的:

id foo = [someObject objectByDoingSomething]; // foo might be nil 

id bar = [foo objectByDoingSomethingElse]; 

// If foo is nil, calling objectByDoingSomethingElse is essentially 
// a no-op and returns nil, so bar will be nil 
NSLog(@"foo: %@ bar: %@", foo, bar); 

因此,这也没关系,即使objectByDoingSomething可能返回nil:

id foo = [[someObject objectByDoingSomething] objectByDoingSomethingElse]; 

The Objective-C Programming Language:“在Objective-C,它是有效的发一个消息到零 - 它在运行时不起作用。“该文档包含有关Objective-C中nil上调用方法行为的更多详细信息。

相关问题