-2

我有 2 个课程: MainVC DownloadedFilesView

在 MainVC 类中,我有一个 NSMutableArray 存储 iPhone 目录的所有文件的列表。该数组是我的 tableview 的数据源(存在于 DownloadedFilesView 中)。选择特定行(从 MainVC 表视图)后,我将此数据从 MainVC 发送到 DownloadedFilesView,如下所示:

if (indexPath.section == 1) {

    DownloadedFilesView *downloadView = [[DownloadedFilesView alloc] initWithNibName:@"DownloadedFilesView" bundle:nil];

    int count;
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *path = [paths objectAtIndex:0];
    NSArray *directoryContent = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:NULL];

    for (count = 0; count < (int)[directoryContent count]; count++)
    {
        NSString *fileNames = [directoryContent objectAtIndex:count];
        [downloadView.arrayOfDirFiles addObject:fileNames];
    }

    [self.navigationController pushViewController:downloadView animated:YES];
}

我将此数据源保存到另一个数组“arrayOfDirFiles”(位于 DownloadedFilesView 中)。现在我正在初始化这个数组

initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

喜欢:

arrayOfDirFiles = [[NSMutableArray alloc] init];

现在这个数组是我在 DownloadedFilesView 中的 tableview 的数据源

tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

    if (theTableView.editing) {
        //arrayOfFileNamesToSave is the array which I want filtered when selecting particular cell
        [arrayOfFileNamesToSave addObject:[arrayOfDirFiles objectAtIndex:indexPath.row]];
    }

    //NSLog(@"aaa....%@",arrayOfFileNamesToSave);
}

现在这是抛出一个错误。使它工作的最佳方法是什么?请帮忙!提前致谢!

4

1 回答 1

0

我认为最好的方法是将整个 directoryContent 数组传递给 downloadView。

downloadView.arrayOfDirFiles = directoryContent

请确保在 DownloadedFilesView 中将 arrayOfDirFiles 定义为 strong/retain。

于 2013-10-18T18:25:28.063 回答