You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用NSArrayController向NSTableView添加数据后出现空行,求助排查

问题排查与解决方案

针对你遇到的NSTableView添加行后内容为空的问题,可按以下步骤逐一排查:

1. 核对绑定的模型键路径大小写

确认NSTableViewColumn的模型键路径与字典中的键完全一致(包括大小写)。若绑定过程中误将Name写成小写name、Surname写成surname,会导致无法读取对应值。

2. 检查ArrayController的Content Array绑定

确保_myArrayController的Content Array已绑定到一个可变数组属性:

  • 在ViewController中声明属性:
    @property (nonatomic, strong) NSMutableArray *dataArray;
    
  • 在XIB/Storyboard中,将ArrayController的Content Array绑定到该ViewController的dataArray属性。若未绑定,ArrayController内部数组无法持久化对象,仅能生成空行。

3. 替换字典创建方式排查

将字典创建代码替换为现代字面量写法,避免dictionaryWithObjectsAndKeys可能的参数顺序问题(虽然你的写法逻辑正确,但可排除语法隐患):

- (IBAction)setData:(id)sender{
    NSMutableDictionary *newItem = @{@"Name": @"James", @"Surname": @"Smith"}.mutableCopy;
    [_myArrayController addObject:newItem];
}

4. 验证ArrayController的Object Class设置

在XIB/Storyboard中选中ArrayController,查看属性面板的Object Class是否设为NSMutableDictionary。若设置了其他自定义类且该类无Name、Surname属性,会导致值无法读取。

5. 确认绑定目标正确性

检查NSTableViewColumn的绑定目标是否为_myArrayController,避免误选其他对象作为数据源载体。


内容的提问来源于stack exchange,提问作者GeraldTheGerm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 11:27:25