• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: how to pass arguments by reference
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: how to pass arguments by reference


  • Subject: Re: how to pass arguments by reference
  • From: Dave DeLong <email@hidden>
  • Date: Wed, 10 Dec 2008 08:54:26 -0700

Spoke too soon... whoops.

Put an asterisk before the type, indicating that the type is going to come in as a pointer to the data and not the actual data. Then when you call the method, you use the ampersand to pass a pointer to your data, like so:

(in some class definition somewhere. A C function would have slightly different syntax, shown below):
- (void) foo:(*int)bar {
(*bar)++;
}


Then elsewhere,

int baz = 42;
NSLog(@"%d", baz);
[someReceiver foo:&baz];
NSLog(@"%d", baz);

You should see "42" printed, and then "43".

If you wanted to declare "foo" as a C function, you'd do it like so:

void foo (int *bar) {
  //same stuff
}

Welcome to the wonderful world of pointers.

Dave

On Dec 10, 2008, at 8:45 AM, Dave DeLong wrote:

Put the & before the variable type:

- (UInt32) traverseTreeStraightReturnedDirection: (&int)treeDirection...

HTH,

Dave

On Dec 10, 2008, at 8:43 AM, Nick Rogers wrote:

Hi,
I have the following in my .m file:


- (UInt32)traverseTreeStraightReturnedDirection:(int&)treeDirection returnedTreeDepth:(int&)treeDepth returnedKey:(HPlusCatalogKey&)catKey lookForKey:(HPlusCatalogKey)lastKey { // code here }

But the error when compiling is "parse error before & token".
Is passing by reference not allowed or is there any other syntax that I should follow?


Thanks,
Nick
_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden

_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Follow-Ups:
    • Re: how to pass arguments by reference
      • From: Mark Woollard <email@hidden>
    • Re: how to pass arguments by reference
      • From: email@hidden
    • Re: how to pass arguments by reference
      • From: Dave DeLong <email@hidden>
References: 
 >how to pass arguments by reference (From: Nick Rogers <email@hidden>)
 >Re: how to pass arguments by reference (From: Dave DeLong <email@hidden>)

  • Prev by Date: Re: how to pass arguments by reference
  • Next by Date: Re: Custom NSTableView cells
  • Previous by thread: Re: how to pass arguments by reference
  • Next by thread: Re: how to pass arguments by reference
  • Index(es):
    • Date
    • Thread