【发布时间】:2014-03-22 14:52:57
【问题描述】:
我正在解析来自 JSON 网络服务的数据并将其添加到数据库中,因此当我插入一个 int 时,我必须以这种方式将其转换为 NSNumber,它工作正常:24521478
NSString *telephone = [NSString stringWithFormat:@"%@",[user objectForKey:@"telephone"]];
int telephoneInt = [telephone intValue];
NSNumber *telephoneNumber = [NSNumber numberWithInt:telephoneInt];
patient.telephone = telephoneNumber;
但是当我想显示它并将 NSNumber 转换为 NSString 时,我得到了错误的数字:-30197
NSString *telephoneString = [NSString stringWithFormat:@"%d", [user.telephone intValue], nil];
labelTelephone.text =telephoneString ;
谁能解释一下?
【问题讨论】:
-
我认为将电话号码表示为 int 不是一个好主意。另外,我认为通过
intValue方法从NSString获取 int 不是一个好主意,这显然是一个电话号码。 -
我不知道您为什么会得到这个答案,但是在将 NSNumber 转换为字符串之前,无需将其转换为 int。你可以这样做,[NSString stringWithFormat:@"%@", user.telephone]。如果你登录 user.telephone,你会得到什么?
-
您的电话财产怎么样?
-
比 CouchDeveloper 强一点:试图将电话号码表示为 int 是一个垃圾想法。我的电话号码以 "+44 (1" “(1234)”的意思是“区号是1234,所以拨区号前面的数字后跟1234,除非你拨的是国家代码,或者你的区号也是1234”。
-
只是补充一点,如果服务器的人比客户端的人聪明一点,那么电话号码首先会以字符串的形式出现,而整个转换过程都是无稽之谈。
标签: ios objective-c json nsstring nsnumber