在 nstableview 中显示目录中的数据

Posted

技术标签:

【中文标题】在 nstableview 中显示目录中的数据【英文标题】:displaying data in nstableview from a directory 【发布时间】:2012-08-08 12:39:40 【问题描述】:

我想在表格视图中显示 fileNames 、 types 、 size ...。 我试图显示文件名。表格视图由数据填充,但未显示。 显示警告:'directoryContectsAtPath:' 已弃用。 这是代码(.m 文件)。 请帮忙

@implementation TableController

-(void) awakeFromNib

    [uploadTable setDataSource:self];



-(IBAction)showFiles:(id)sender
    [fileNames removeAllObjects];
    [fileNames autorelease];
    fileNames = [[NSMutableArray alloc] initWithArray:[[[NSFileManager defaultManager]directoryContentsAtPath:@"/"]retain]];
    [uploadTable reloadData];



-(int)numberOfRowsInTableView:(NSTableView *)uploadTable
    return [fileNames count];


-(id)tableWiew:(NSTableView *)uploadTable objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row

    return [[fileNames objectAtIndex:row] stringValue];


@end

【问题讨论】:

使用 contentsOfDirectoryAtPath:error: 代替。这在文档中很容易找到——如果您输入一个已弃用的方法的名称并转到该链接,它通常会说明要使用哪个替代方法。 【参考方案1】:

为避免弃用警告,您可以使用

[[NSFileManager defaultManager] contentsOfDirectoryAtPath: error:nil]

而不是

[[NSFileManager defaultManager]directoryContentsAtPath:@"/"]

另外,你的方法有错别字(tableView,不是 tableWiew)

-(id)tableWiew:(NSTableView *)uploadTable objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row

【讨论】:

以上是关于在 nstableview 中显示目录中的数据的主要内容,如果未能解决你的问题,请参考以下文章

在 NSTableView 中显示来自 NSArray 的数据

NSArrayController NSTableView 核心数据绑定整数

在 NSTableView 中显示图像

将 NSArray 与 NSArrayController 绑定并在 NSTableView 中显示结果

在单个 NSTableView (Core-Data) 中显示来自多个实体的数据

使用乘法 NSArrayControllers 和 NSTableView 绑定数据