Re: Dynamic message typing problem
Re: Dynamic message typing problem
- Subject: Re: Dynamic message typing problem
- From: Julius Guzy <email@hidden>
- Date: Fri, 16 May 2008 16:21:18 +0100
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:
This email sent to email@hidden