Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Objective-C parameter mutation



Hi,

I have a question about method parameters in Objective C. A long time
ago, I had a method like the following:

-(void) foo:(float)val { }

... and when I would call it ([inst foo:0.001], for example), the
value inside the foo method would NOT be 0.001. At the time, I
believed there to be an Objective C requirement that parameters to
methods need to be pointers to objects, not primitive values. So, I
achieved success by changing the above method declaration to

-(void) foo:(NSNumber*)val { }

... and passing in a NSNumber* with a float value worked.

Now, I'm having the same problem, but am not convinced there is any
such requirement that parameters be pointers to object instances. (I
could be wrong, though)

So, I've got the following method:

+ (void)done:(MyObj*)dObj structure:(void*)pStruct

... and when I call it with a "structure" parameter, say a malloc'ed
char* at address 0x171eb070, as soon as I step into this method, the
address is no longer 0x171eb070, but some garbage value that causes
all sorts of trouble. Here's to hoping someone can tell me why this
doesn't work...

Thanks

jt
_______________________________________________

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:
http://lists.apple.com/mailman/options/cocoa-dev/email@hidden

This email sent to email@hidden



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.