So to avoid the endian quagmire, I should create an NSDecimalNumber from my
NSDecimal and add that to my dictionary.

    NSDecimal pi = ...  // 3.1415927...
    NSDecimalNumber *piNSD = [NSDecimalNumber decimalNumberWithDecimal:pi];


I plan to write a pair of apps that saves NSDecimal values to a file and
retrieves them. I plan to test these apps on modern and legacy hardware to
verify the endian question. But for now, that is a side-track for me. Has
anyone already done such a test?

++ Tom

Tom Bernard
tombern...@bersearch.com



on 11/20/09 1:02 PM, Greg Guerin wrote:

> Message: 6
> Date: Fri, 20 Nov 2009 10:53:35 -0700
> From: Greg Guerin
> Subject: Re: extracting the mantissa for a NSDecimal
> Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
> 
> Tom Bernard wrote:
> 
>> NSData *anNSDecimalAsData = [NSData dataWithBytes:&anNSDecimal
>> length:sizeof(NSDecimal)];
>> 
>> gives you an NSData object suitable for an NSDictionary without
>> having to
>> muck around with NSDecimal's private fields.
> 
> 
> The representation stored in the NSData may be endian-sensitive.  If
> the NSDictionary contents might cross architectures, that could be
> problematic.


on 11/20/09 1:02 PM, Jens Alfke  wrote:

> Message: 8
> Date: Fri, 20 Nov 2009 10:49:27 -0800
> From: Jens Alfke 
> Subject: Re: extracting the mantissa for a NSDecimal
> To: Greg Guerin 
> Content-Type: text/plain; charset=WINDOWS-1252; format=flowed;
> delsp=yes
> 
> 
> On Nov 20, 2009, at 9:53 AM, Greg Guerin wrote:
> 
>> The representation stored in the NSData may be endian-sensitive.  If
>> the NSDictionary contents might cross architectures, that could be
>> problematic.
> 
> s/may be/is/
> s/could be/will be/
> 
> NSDecimal is a struct containing multi-byte integers. It is definitely
> endian-sensitive.


on 11/20/09 1:02 PM, Gary L. Wade wrote:

> Message: 11
> Date: Fri, 20 Nov 2009 11:33:30 -0800
> From: "Gary L. Wade" <garyw...@desisoftsystems.com>
> Subject: Re: extracting the mantissa for a NSDecimal
> To: Jens Alfke, Greg Guerin
> Content-Type: text/plain;    charset="US-ASCII"
> 
> On 11/20/2009 10:49 AM, "Jens Alfke" <j...@mooseyard.com> wrote:
> 
>> 
>> On Nov 20, 2009, at 9:53 AM, Greg Guerin wrote:
>> 
>>> The representation stored in the NSData may be endian-sensitive.  If
>>> the NSDictionary contents might cross architectures, that could be
>>> problematic.
>> 
>> s/may be/is/
>> s/could be/will be/
>> 
>> NSDecimal is a struct containing multi-byte integers. It is definitely
>> endian-sensitive.
>> 
> 
> I haven't been following this closely, but NSDecimalNumber both takes an
> NSDecimal and conforms to the NSCoding Protocol



on 11/20/09 10:14 AM, Roland King wrote:

> Message: 5
> Date: Fri, 20 Nov 2009 20:32:05 +0800
> From: Roland King
> Subject: Re: extracting the mantissa for a NSDecimal
> To: Tom Bernard 
> Content-Type: text/plain; charset=us-ascii
> 
> I don't know if he ever did get an answer however your method of putting it in
> an NSData is a much better idea and the original question sort of missed the
> point. 
> 
> Yes there is a constructor for NSDecimalNumber which allows you to give a
> mantissa and an exponent, but that doesn't mean the number is stored in a way
> which lets you get those out again. For instance mantissa 123 with exponent 3
> is the same number as 123000 with exponent 0. It's true that it would be
> possible for NSDecimalNumber to have an instance method which returned one
> possible combination of mantissa, exponent and sign which represented the
> number, but it doesn't, and you really shouldn't need it.
> 
> it's a little like using [ stringWithFormat:@"%...@%@" string1, string2, nil ]
> 
> to make a string and then expecting there's a method you can call later which
> gets you string1 and string2 back, but of course by then you just have the
> resulting string, you can't go backwards.
> 
> There is -(NSDecimal)decimal method which returns a structure with
> mantissa/exponent etc however the fields in that are explicitly declared to be
> private, so you really shouldn't use it.
> 
> You really need to treat it as a black box if you wish to save and restore it.


_______________________________________________

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 arch...@mail-archive.com

Reply via email to