Skip to main contentdfsdf

Shannon Carver's List: OS X Development

    • The message  expression is on the right side of the assignment, enclosed by the square  brackets. The left-most item in the message expression is the receiver, a  variable or expression representing the object to which the message is sent. In  this case, the receiver is sorted_args, an instance of the NSArray class. Following the receiver is the message  proper, in this case objectEnumerator. (For now, we are going to focus on  message syntax and not look too deeply into what this and other messages in  SimpleCocoaTool actually do.) The message objectEnumerator invokes  a method of the sorted_args object named  objectEnumerator, which returns a reference to an object that is  held by the variable enm on the left side of the assignment. This  variable is statically typed as an instance of the NSEnumerator class. You can diagram this statement  as:


       
      Object messaging syntax

       

      However, this diagram is simplistic and not really accurate. A message  consists of a selector name  and the parameters of the message. The Objective-C runtime uses a selector name,  such as objectEnumerator above, to look up a selector in a table in  order to find the method to invoke. A selector is a unique identifier that  represents a method and that has a special type, SEL. Because it’s  so closely related, the selector name used to look up a selector is frequently  called a selector as well. The above statement thus is more correctly shown  as:


       
      Object messaging syntax

       

      Messages often have parameters, or arguments. A  message with a single argument affixes a colon to the selector name and puts the  argument right after the colon. This construct is called a keyword ; a keyword  ends with a colon, and an argument follows the colon. Thus we could diagram a  message expression with a single argument (and assignment) as the  following:


       
      Object messaging with argument

       

      If a message has multiple arguments, the selector has multiple keywords. A  selector name includes all keywords, including colons, but does not include  anything else, such as return type or parameter types. A message expression with  multiple keywords (plus assignment) could be diagrammed as follows:


       
      Object messaging with multiple arguments
    • Using Objective-C

       

      The way  work gets done in an object-oriented program is through messages; one object  sends a message to another object. Through the message, the sending object  requests something from the receiving object (receiver). It requests that the  receiver perform some action, return some object or value, or do both  things.

       

      Objective-C adopts a unique syntactical form for messaging.  Take the following statement from the SimpleCocoaTool code in Listing  2-2:

       
         
      NSEnumerator *enm = [sorted_args objectEnumerator];

    13 more annotations...

1 - 1 of 1
20 items/page
List Comments (0)