You should really use 'integerValue' rather than 'intValue' if you're otherwise 
using NSIntegers.  'integerValue' will return an NSInteger (which may be 32 or 
64 bits wide depending on your platform), but 'intValue' will return a C 'int' 
(which is always 32 bit on the Mac and iPhone, regardless of the 'natural' bit 
width of the platform).

Jamie.

On 22 Apr 2010, at 18:21, Arnold Nefkens wrote:

> Hi Thanks
> 
> Yeah the keys are ints and this helps a lot.
> 
> Thanks again...
> 
> 
> On 22 apr 2010, at 18:31, Reinhard Segeler wrote:
> 
>> Hi,
>> 
>> correct me if I'm wrong, but what you're doing is a calculation with the 
>> pointers ( * of NSNumber) not the values. You have to calculate it like this:
>> 
>> NSInteger fieldOne    = [ [ managedObject valueForKey:@"key1"] intValue]; // 
>> if it's an integer
>> NSInteger  fieldTwo   = [ [ managedObject valueForKey:@"key2"] intValue];
>> NSInteger  fieldThree = [ [ managedObject valueForKey:@"key3"] intValue];
>> 
>> if ( fieldTwo > 0 )
>> {
>>  NSNumber *answer = [ NSNumber numberWithInt:fieldTwo - fieldOne + 
>> fieldThree];
>>  [ self.managedObject setValue:answer forKey:@"key4"];
>>  // maybe you need to this instead
>>  [ self.managedObject setValue:[ answer stringValue] forKey:@"key4"];
>> }
>> 
>> Don't know if intValue in this context works, if not then use this 
>> alternative, which must work in any way:
>> 
>> Your code and change the following lines:
>> 
>> NSNumber *answer = [ NSNumber numberWithInt: [fieldTwo intValue] - [fieldOne 
>> intValue] + [fieldThree intValue] ];
>> 
>>  [ self.managedObject setValue:answer forKey:@"key4"];
>>  //or
>>  [ self.managedObject setValue:[ answer stringValue] forKey:@"key4"];
>>  //stringValue to present it in a textfield
>> 
>> Hope that helped... MacMeideln
>> 
>> Am 22.04.2010 um 17:36 schrieb Arnold Nefkens:
>> 
>>> Hello list,
>>> 
>>> Im quite new, and probably missing something.
>>> 
>>> I want to do a calculation of three fields inside of a entity in CoreData.
>>> 
>>> Below is the code, what is wrong?
>>> 
>>> NSNumber *fieldOne = [managedObject valueForKey:@"key1"];
>>> NSNumber *fieldTwo = [managedObject valueForKey:@"key2"];
>>> NSNumber *fieldThree = [managedObject valueForKey:@"key3"];
>>> if (fieldTwo > 0) {
>>> NSNumber *answer = ((fieldTwo - fieldOne) + fieldThree);
>>> [self.managedObject setValue:[answer intValue] forKey:@"key4"];
>>> }
>>> 
>>> If I debug the right values are being shown in the fieldOne, fieldTwo and 
>>> fieldThree. But the calculation answer is all the time out of scope.....
>>> 
>>> What am I missing?
>>> 
>>> hope someone can help...
>>> 
>>> Arnold Nefkens_______________________________________________
>>> 
>>> 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/macmeideln%40googlemail.com
>>> 
>>> This email sent to macmeid...@googlemail.com
>> 
> 
> _______________________________________________
> 
> 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/jamie%40montgomerie.net
> 
> This email sent to ja...@montgomerie.net

_______________________________________________

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