簡體   English   中英

iphone:tableview沒有數據時objectAtIndex崩潰

[英]iphone: objectAtIndex crash when tableview have no data

我有以下代碼

[[categories objectAtIndex:row]objectForKey:@"name"];

其中categories是nsmutablearray ..它在tableview中,但如果類別有0行(非null),它會給出異常並崩潰..例外是

由於未捕獲的異常'NSRangeException'而終止應用程序,原因:' - [__ NSCFArray objectAtIndex:]:索引(0)超出邊界(0)'

那么如何加載表而不拋出異常

如果嘗試訪問任何內容,則空數組將拋出此異常,因為如果數組為空,則任何索引處都不存在對象。 這就像我沒有車,但你要借我的車..如果我沒有車,你就不能借我的車(然后我向你扔了一個例外的拳頭讓我意識到我太窮了,不能擁有一輛車) ! =)

改為:

if ([categories count]) {
    [[categories objectAtIndex:row]objectForKey:@"name"];
    ....
}

編輯:

實際上,您可能希望更改if語句以確保它至少有row + 1個對象。

if (([categories count] - 1) >= row) {
    [[categories objectAtIndex:row]objectForKey:@"name"];
    ....
}

錯誤的是你要求的數組元素不存在。

暫無
暫無

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

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