簡體   English   中英

從NSNumber到NSString的轉換問題

[英]Conversion issue from NSNumber to NSString

我正在從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 ;

有人可以解釋嗎?

NSNumber帶有每種數據類型的專用方法。如果要將NSNumber轉換為NSString,請使用:

 NSString *telephoneString = [user.telephone  stringValue];

該問題可能是由於您為變量Patient使用的數據類型而引起的。

如果您可以控制Web服務,則應在JSON中以字符串形式返回電話號碼

原因

  1. 如果電話號碼以零開頭,則NSNumber將刪除該零,因為它沒有值( 例如: 00123456789將為123456789,這將導致錯誤的數據)
  2. 您將無法通過添加“ +”和“-”來顯示電話號碼,這是一種用戶友好的方式( 例如: + 123-456-789)

如果您對此有控制權,則確實應該讓json以字符串形式返回數字

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM