gpt4 book ai didi

objective-c - 核心数据获取请求不返回不同的结果

转载 作者:行者123 更新时间:2023-12-03 17:02:46 24 4
gpt4 key购买 nike

我试图从核心数据实体返回不同的结果,然后放入弹出菜单中。我只希望具有所请求属性的实体一次出现在返回的字典中,以便它可以用作另一个弹出窗口的谓词。

例如记录:

名称 |编号

测试1 | 111

测试1 | 222

测试2 | 333

会返回测试1测试2

因此,可以将其设置为 nameNSPopUpButton 的谓词。当用户选择该名称时,它将设置第二个弹出窗口,其中包含相应值的内容集。

例如将 Test1 命名为选定对象生成的弹出窗口ID 弹出窗口,内容集为 111222

<小时/>

因此,我根据我在此处阅读的有关 SO 的文章开始了此获取请求。

-(void)fetchItems {

NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Equipment"];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Equipment" inManagedObjectContext:[[NSApp delegate] managedObjectContext]];

fetchRequest.entity = entity;

fetchRequest.propertiesToFetch = [NSArray arrayWithObject:[[entity propertiesByName] objectForKey:@"item"]];
fetchRequest.resultType = NSDictionaryResultType;
[fetchRequest setReturnsDistinctResults:YES];

NSArray *dictionaries = [[[NSApp delegate] managedObjectContext] executeFetchRequest:fetchRequest error:nil];
NSLog (@"names: %@",dictionaries);
}

但是 NSLog 仍然返回非不同的记录!这是日志:

names: (
{
item = item2;
},
{
item = item1;
},
{
item = item1;
}
)

有谁知道为什么此提取无法正确执行吗?另外,根据我已经解释过的我想做的事情,我的逻辑是否走在正确的轨道上?谢谢

最佳答案

使用集合对象NSSet...

fetchItems 方法中遵循以下行:

NSArray *dictionaries = [[[NSApp delegate] managedObjectContext] executeFetchRequest:fetchRequest error:nil];

添加这一行:

NSSet *setDictionaries = [NSSet setWithArray:dictionaries];

更改您的日志:

NSLog (@"names: %@",setDictionaries);

引用Apple Documentation .

也有帮助About Collections

关于objective-c - 核心数据获取请求不返回不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25015994/

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