簡體   English   中英

從JSON響應對象獲取價值

[英]Get value from JSON response Object

我正在發出JSON請求,並希望從其中一個字段獲取int值。

{
"currentPage": 1,
"numberOfPages": 5,
"totalResults": 234,
"data": [],
"status": "success"
}

我想獲取numberOfPages的值。 我的代碼如下

_pages = [responseObject objectForKey:@"numberOfPages"];
_numberOfPages = (int)_pages;
NSLog(@"%d", _numberOfPages);

而不是numberOfPages的值,NSLog是150198512。有人可以解釋為什么嗎? 嘗試索引0處的對象將使其崩潰。

_pages應該是您定義中的NSNumber 您不能將其強制轉換為獲取原始類型,而必須請求原始類型。 _numberOfPages應該是NSInteger (或者可能是NSUInteger ),並且您應該使用以下方法獲取值:

_numberOfPages = [_pages integerValue];

另外:考慮使用self.pagesself.numberOfPages而不是直接訪問實例變量(這可能會在將來幫助您進行維護)。

使用self.pages到調用結果pages (或self.pages = xxx在調用setPages:xxx )方法來獲取(或設置)的實例變量(內容_pages )。 因此,如果您具有該方法的自定義實現,它將被調用,並且您的自定義邏輯將運行。 如果僅使用_pages ,則不會調用它,如果需要進行更改,則以后需要進行大量編輯。

最好的選擇是,每當要更新屬性時都使用self.XXX = xxx而要使用它時則使用XXX xxx = self.xxx

這不是一個硬性規定。 這里有趣的討論

暫無
暫無

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

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