On 15 May 2008, at 14:40, [EMAIL PROTECTED] wrote:
From: Michael Vannorsdel <[EMAIL PROTECTED]>
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 (Cocoa-dev@lists.apple.com)

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/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to