在核心数据中设置数字属性的麻烦

时间:2011-05-13 18:42:49

标签: ios core-data attributes nsnumber

我在核心数据中有一个实体“项目”。 Item有两个属性:name和number。 name是NSString *,number是NSNumber *。我在Core Data建模工具中指定了“Integer 32”作为数字的类型。以下代码正确设置名称,但不设置数字:

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

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

记录card.name按预期显示“测试名称”。记录card.number显示一个大的随机数。我期待123,因为那是我传给numberWithInteger。

为什么数字属性设置不正确?

一些注意事项:

  • 我通过在建模工具中选择“Item”实体并添加新的“Managed Object Class”来创建Item类。这为我创造了属性等。

1 个答案:

答案 0 :(得分:0)

这是一个记录问题:

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

需要

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

(必须将%d更改为%@)