我在我的Documents目錄中創建了兩個文件夾。 我有一個UITableView顯示文件夾中的項目。由於未捕獲的異常'NSRangeException'而終止應用程序,原因:'*** - [__ NSArrayI objectAtIndex:]:索引0超出空數組邊界
Subfolder = @"/Sent";
它給了我一個威脅1:上線的跡象SIGABRT:
NSString *last = [dataPath stringByAppendingPathComponent:[filePathsArray objectAtIndex:indexPath.row]];
我有兩個表視圖,這下面的代碼一直工作正常,直到我加入了2個文件夾的文件目錄。
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
if (tableView == _tblConnectedDevices){
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CellIdentifier"];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CellIdentifier"];
}
cell.textLabel.text = [_arrConnectedDevices objectAtIndex:indexPath.row];
return cell;
} else {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
if ([filePathsArray count] == 0){
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@",subFolder]];
filePathsArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:dataPath error:nil];
}
if ([filePathsArray count] > 0) {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@",subFolder]];
filePathsArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:dataPath error:nil];
NSString *last = [dataPath stringByAppendingPathComponent:[filePathsArray objectAtIndex:indexPath.row]];
NSString *last2 = [[last lastPathComponent] stringByDeletingPathExtension];
cell.textLabel.text = last2;
}
return cell;
}
}
當我打開與它一個文件一個文件夾,它加載罰款,之後,如果我什麼也沒有打開文件夾,我得到下面的錯誤。 如果我第一次打開沒有任何東西的文件夾,它很好,然後用它裏面的東西打開文件夾,它很好,然後當我回到空文件夾時,再次出現相同的錯誤。 我在這裏錯過了什麼?
*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array'
添加執行斷點,只是調試它。 – 2015-03-13 14:16:57
嘗試將'NSError'變量傳遞給您重新設置'filePathsArray'的行,並檢查它是否報告任何錯誤。 – AMI289 2015-03-13 14:21:14