如何在 cocoa 应用程序中从 NSArray Controller 获取返回结果的数量?

How can I get number of returned results from NSArray Controller in cocoa app?

我有一个名为 productsArrayController 的 NSArrayController,它与 NSTableViev 和来自核心数据的 returns 记录绑定。我现在想以编程方式获取 NSTableView 中显示的记录数。

我知道我应该从数据源(在我的例子中是 productsArrayController)而不是从 NSTableView 来做到这一点,所以我从我的 NSArrayController 中创建了一个出口。这是我正在尝试做的事情:

- (void)viewDidLoad {
    NSArray *myArr = [_productsArrayController selectedObjects];
    NSUInteger total = [myArr count];
    NSLog(@"Total is: %ld",total);
}

果然我此时没有选择对象,上面的代码returns0,即使我的NSTableView中显示了9条记录。问题是我应该使用什么而不是 selectedObjects 来获取此处的记录数(在我的例子中是 9 个)?

你可以在 applicationDidFinishLaunching: 添加

中做一件事
NSError *error; 
BOOL ok = [productsArrayController fetchWithRequest:nil merge:NO error:&error]; 
int count = [[productsArrayController arrangedObjects] count];

答案取自以下话题URL