0
votes

I have an Entity "Item" in Core Data. Item has two attributes: name and number. name is an NSString* and number is an NSNumber*. I specified "Integer 32" as the type for number in the Core Data modelling tool. The following code sets the name correctly but not the number:

Item *item = (Item *) [NSEntityDescription insertNewObjectForEntityForName:@"Item"
                       inManagedObjectContext:managedObjectContext]; 

[item setName:@"test name"];
[item setNumber:[NSNumber numberWithInteger:123]];

Logging card.name shows "test name" as expected. Logging card.number shows a large random number. I was expecting 123 since that's what I passed to numberWithInteger.

Why isn't the number attribute being set correctly?

A few notes:

  • I created the Item class by selecting the "Item" Entity in the modeling tool and adding a new "Managed Object Class". This created the properties etc for me.
1

1 Answers

0
votes

It was a logging issue:

NSLog([NSString stringWithFormat:@"%d", item.number]);

needed to be

NSLog([NSString stringWithFormat:@"%@", item.number]);

(Had to change %d to %@)