2012-06-19 33 views
0

我有這個問題,我不斷收到這個錯誤在我的控制檯:除了有一個數組之外的空數組的NSRangeException?

* Terminating app due to uncaught exception 'NSRangeException', reason: '* -[__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array'

這裏是我從XML文檔檢索數據的代碼:

CXMLDocument *worldweather = [[CXMLDocument alloc]initWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://free.worldweatheronline.com/feed/weather.ashx?q=%@&format=xml&num_of_days=4&key=0ded69e02b171832121504",query]] options:0 error:nil];

weathercondition = [[[worldweather nodesForXPath:@"/data/current_condition/weatherIconUrl" error:nil] objectAtIndex:0] stringValue];

位置是Xcode是使用是威廉姆斯,CA和發送的查詢

Williams+CA

當我插入到這一點我的網址,它的工作原理,我得到我的XML文件,但爲什麼我得到這個MES鼠標在我的控制檯?

這讓我瘋狂。所有的幫助將非常感謝!提前致謝!

+0

讓我知道如果你NSLog(@「class:%@」,[[worldweather nodesForXPath:@「/ data/current_condition/weatherIconUrl」error:nil] class]); – Ladislav

+0

這是我現在的控制檯:2012-06-19 20:17:38.441預測器[10795:c07] Williams + CA 2012-06-19 20:17:38.799預測器[10795:630b]( ) 2012- 06-19 20:17:38.799陣列中的預測器[10795:630b]元素:0 2012-06-19 20:17:38.800預測器[10795:630b] ***由於未捕獲的異常'NSRangeException' :'*** - [__ NSArrayI objectAtIndex:]:索引0超出空數組邊界' – sridvijay

+0

我知道,但添加之前,你有天氣條件= ...只需添加我的行NSLog(@「class:%@」,[ [worldweather nodesForXPath:@「/ data/current_condition/weatherIconUrl」error:nil] class]);並讓我知道現在控制檯輸出什麼 – Ladislav

回答

3

似乎你認爲[worldweather nodesForXPath:@"/data/current_condition/weatherIconUrl" error:nil]NSArray與數組內至少有一個對象。這顯然不是這種情況,你會得到一個錯誤,指出索引0處沒有對象,這意味着該數組是空的。

如果您不確定NSArray裏面是否至少有一個物體,請不要致電objectAtIndex:0

你可以先檢查一下有多少元素數組在那裏,隨後做的工作,如:

NSArray *weatherArray = [worldweather nodesForXPath:@"/data/current_condition/weatherIconUrl" error:nil]; 

if ([weatherArray count] > 0){ 
    weathercondition = [[weatherArray objectAtIndex:0] stringValue]; 
} 

如果你不知道你是從服務器得到什麼回來了,看到什麼是數組中:

NSLog(@"%@", weatherArray); 

或檢查有多少元素有:

NSLog(@"elements in Array: %i", [weatherArray count]); 

一個加法你可以使用的一個有用的東西是例如[weatherArray lastObject],這將總是返回數組的最後一個元素,並且即使數組爲空也將返回nil(它不會像objectAtIndex:0那樣崩潰)

+0

推動我堅果的事情是,如果你把它放在Safari中:http://free.worldweatheronline.com/feed/weather.ashx?q = Williams + CA&format = xml&num_of_days = 4&key = 0ded69e02b171832121504,有一個對象!我不知道爲什麼它說沒有對象?它工作之前,然後現在隨機此NSRangeException即將來臨 – sridvijay

+0

只要讓我知道你得到什麼,如果你輸入的東西,我把你的問題下面的評論...我不能幫助你沒有你分享我一些信息 – Ladislav

+0

我的不好,對不起那更新了評論! – sridvijay

相關問題