Mailing Lists: Apple Mailing Lists

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

Re: Dynamic message typing problem




On 15 May 2008, at 14:40, email@hidden wrote:
From: Michael Vannorsdel <email@hidden>
Subject: Re: Dynamic message typing problem

This block is probably causing some corruption.  You're assigning 123
to a uchar pointer and not the uchar, then passing the address of a
pointer to a method that tries to printout the pointer as an int
rather than the intended uchar value.


On May 14, 2008, at 7:19 PM, Julius Guzy wrote:

- (void) callPrintConstUnsignedCharRef:(id)pId;
{
	unsigned char * tvarUnsignedChar	= 123;
	[pId printUnsignedCharRef:&tvarUnsignedChar];
}


Yes thanks.
That was careless of me.
And I had made the problem statement far too long for the actual problem to stand out.


It was that this:

- (void) callPrintConstFloat:(id)pId {
[pId printFloat:98.76]; // pId is object of class AnonTargetClass
}


causes this method in object of class AnonTargetClass

- (void) printFloat:(float)pF {
	NSLog(@" %6.3f",pF);
}

to print
-151996493463552.000

even though
	AnonTargetClass *atcObj	= [[AnonTargetClass alloc] init];
	[atcObj printFloat:98.76];

prints
 98.760

Here's the full mainline and results

#import <Cocoa/Cocoa.h>
#import "AnonTargetClass.h"
#import "CallingClass.h"

int main(int argc, char *argv[])
{
	AnonTargetClass	* atcObj = [[AnonTargetClass alloc]init];
	CallingClass	* callingObj   = [[CallingClass alloc]init];
	
	[callingObj callPrintConstFloat:atcObj];
	[atcObj printFloat:98.76];

}


2008-05-16 16:07:41.058 testDynamicBinding[856:10b] -151996493463552.000 2008-05-16 16:07:41.059 testDynamicBinding[856:10b] 98.760


Julius

http://juliuspaintings.co.uk



_______________________________________________

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.