• 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: floatValue of nil NSNumber unreliable (was Re: Bug or feature?)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: floatValue of nil NSNumber unreliable (was Re: Bug or feature?)


  • Subject: RE: floatValue of nil NSNumber unreliable (was Re: Bug or feature?)
  • From: "M. Carlson" <email@hidden>
  • Date: Tue, 14 Feb 2006 18:31:44 +0000

From this Apple statement:

"The Objective-C runtime assumes that the return value of a message sent to a nil object is nil, as long as the message returns an object or any integer scalar of size less than or equal to sizeof(void*)."


Would it be fair to conclude that a float value takes up more stack space than an integer, and thus the "odd" behavior? I.e., it's only zeroing out space enough for an integer, not a float value, so whatever's sitting beyond the integer on the stack is being returned as part of the float value?

--M


From: Daniel Jalkut <email@hidden> To: M. Carlson <email@hidden> CC: email@hidden Subject: floatValue of nil NSNumber unreliable (was Re: Bug or feature?) Date: Tue, 14 Feb 2006 13:21:55 -0500

Interesting. I just took your snippet and also reproduced funny behavior (identical config to yours, incidentally).

What's interesting is the "random number" seems to correspond to the last "real float NSNumber" used.

For instance:

  float fval=0.0;
   NSNumber *aNumber=nil;
   NSNumber *secondNumber = [NSNumber numberWithFloat:0.5];
   fval=[aNumber floatValue];
   NSLog(@"fval is %f",fval);

fval is always 0.5.

It sounds like a bug to me. Maybe somebody from Apple will have an opinion about this.

Daniel

On Feb 14, 2006, at 1:14 PM, M. Carlson wrote:

This is using Xcode 2.2, OSX 10.4.4, PM G5 2GHz x 2. When I run this, I get random numbers in fval. This came about when I was retrieving a value from an NSDictionary, but there was no entry in the dictionary for the key I was using. I ended up getting wild values for fval, and finally boiled it down to this little snippet, which seems odd to me.

So, am I misunderstanding something about Cocoa, or is it some Xcode setting I'm supposed to be using so I get 0 back?


_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Follow-Ups:
    • Re: floatValue of nil NSNumber unreliable (was Re: Bug or feature?)
      • From: Jim Correia <email@hidden>
    • Re: floatValue of nil NSNumber unreliable (was Re: Bug or feature?)
      • From: Ali Ozer <email@hidden>
    • Re: floatValue of nil NSNumber unreliable (was Re: Bug or feature?)
      • From: Martin Hairer <email@hidden>
    • RE: floatValue of nil NSNumber unreliable (was Re: Bug or feature?)
      • From: Guy English <email@hidden>
References: 
 >floatValue of nil NSNumber unreliable (was Re: Bug or feature?) (From: Daniel Jalkut <email@hidden>)

  • Prev by Date: Re: MDItemCreate very, very, very, slow -- and fails
  • Next by Date: Re: floatValue of nil NSNumber unreliable (was Re: Bug or feature?)
  • Previous by thread: floatValue of nil NSNumber unreliable (was Re: Bug or feature?)
  • Next by thread: RE: floatValue of nil NSNumber unreliable (was Re: Bug or feature?)
  • Index(es):
    • Date
    • Thread