从Core Data检索整数16时的值不正确

时间:2012-04-07 19:48:13

标签: objective-c cocoa-touch core-data integer

我的核心数据模型中有一个名为phoneNo的属性,integer16,我当然需要保存并加载该值。

所以我尝试将用户输入的数字保存到文本字段中:

[myObject setValue:[NSNumber numberWithInteger:[textField.text integerValue]] forKey:@"mobileNo"];

然后我尝试显示这样的值:

label.text = [myObject.mobileNo stringValue];

让我说我输入123456789;而不是显示它,它显示-13035。我不确定我是否正在保存或加载错误,或两者兼而有之。

1 个答案:

答案 0 :(得分:2)

在你的datamodel(yourapp.xcdatamodeld)中,你的属性phoneNo的类型不应该是16的整数(从-32.768到+32.768),这是不够的,它应该是integer32(-2.147.483.647到+2.147)。 483.647)或整数64如果该人输入国家标识符,如(+33)1 23456789。