gpt4 book ai didi

macos - 迭代 NSTableview 或 NSArrayController 来获取数据

转载 作者:行者123 更新时间:2023-12-03 16:55:14 24 4
gpt4 key购买 nike

我有一个绑定(bind)到 NSArrayController 的 NSTableview。表/数组 Controller 包含核心数据“人”实体。人员由 GUI 用户添加到 NSTableview 中。

假设一个人实体看起来像

NSString* Name;
int Age;
NSString* HairColor;

现在我想迭代数组 Controller 中存储的内容以在其中执行某些操作。我想要做的实际操作并不重要,我真的不想陷入我试图对信息做什么的困境。它只是迭代 NSArraycontroller 中保存的所有内容,这让我感到困惑。我有 C++ 和 C# 背景,对 Cocoa 很陌生。假设我想构建一个 NSMutableArray,其中包含 1 年后 nsarraycontroller 中的每个人。

所以我想做类似的事情

NSMutableArray* mutArray = [[NSMutableArray alloc] init];

foreach(PersonEntity p in myNsArrayController) // foreach doesn't exist in obj-c
{

Person* new_person = [[Person alloc] init];
[new_person setName:p.name];
[new_person setHairColor:p.HairColor];
[new_person setAge:(p.age + 1)];
[mutArray addObject:new_person];

}

我相信唯一阻止我做类似上面代码的事情是 Obj-c 中不存在 foreach。我只是不知道如何迭代 nsarraycontroller。

注意:这是针对 OSX 的,因此我打开了垃圾收集

最佳答案

您正在寻找fast enumeration

对于你的例子,类似

for (PersonEntity *p in myNsArrayController.arrangedObjects)
{
// Rest of your code
}

关于macos - 迭代 NSTableview 或 NSArrayController 来获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9188325/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com