1、Party *partyInstance = [Party alloc]; [partyInstance init]; 因为任何一个对象都必须在创建并且初始化后才能 使用,所以上述两个消息应该写在一行 代码里,其代码如下:
Party *partyInstance = [[Party alloc] init];
这种将两个消息合写在一行代码中的做法称为嵌套消息发送(nested message send)。程序 会先执行最里面那个方括号中的代码,所以 Party 类会先收到 alloc 消息。接着,alloc 方 法会返回指向新创建对象的指针。最后,未初始化的对象会收到 init 消息,返回初始化后的 对象指针,并将指针保存在变量中。
---------------------------------------------------------------------------------------------------------
2、标签和参数必须配对的语法是 Objective-C 的一项重要特性。在其他语言中,上面这行代 码可能会写成:
partyInstance.addAttendeeWithDish(somePerson, deviledEggs);
在这些语言中,传入函数的各个数值分别对应哪个参数并不明显。在 Objective-C 中,每 个数值都会和相应的标签配对,代码如下:
[partyInstance addAttendee:somePerson withDish:deviledEggs];
这里要记住,每一组方括号只对应一条需要发送的消息。虽然这里的 addAttendee:withDish:有两个标签,但仍只是一条消息,发送这条消息只会触发一个方法。
--------------------------------------------------------------------------------------------------------
3