为什么在NSRangeException中崩溃?

时间:2015-06-19 11:51:12

标签: ios objective-c xml

我使用https://github.com/nicklockwood/XMLDictionary的XMLDictionary解析xml字符串。 我有这段代码:

NSURL *URL = [[NSURL alloc] initWithString:[self.rssFeed objectAtIndex:i]];
                        NSString *xmlString = [[NSString alloc] initWithContentsOfURL:URL encoding:NSUTF8StringEncoding error:NULL];

                        NSDictionary *xmlDoc = [NSDictionary dictionaryWithXMLString:xmlString];
                        NSMutableArray *aux = [[NSMutableArray alloc]initWithArray:[[xmlDoc valueForKey:@"channel"]valueForKey:@"item"]];

并在此行坠毁:

NSString *xmlString = [[NSString alloc] initWithContentsOfURL:URL encoding:NSUTF8StringEncoding error:NULL];

出现此错误:

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

有人提出任何想法吗?好奇:每次运行此代码时应用程序都不会崩溃。 这部分方法是performSelectorInBackground。我认为价值正在改变

1 个答案:

答案 0 :(得分:0)

实际上,我认为它之前崩溃了:

NSURL *URL = [[NSURL alloc] initWithString:[self.rssFeed objectAtIndex:i]];

在此行上设置断点,查看self.rssFeed数组中有多少项...

(剧透警告:您的阵列实际上是空的。)

祝你好运。