gpt4 book ai didi

ios - 来自服务器和核心数据的 NSOrderedSet 响应

转载 作者:可可西里 更新时间:2023-11-01 03:56:36 26 4
gpt4 key购买 nike

我想显示来自后端的数据所以让我们看一个示例 json 文件:

{
"fonts": [
{
"name": "Helvetica",
"styleIdentifier": "H0",
"size": 17
},
{
"name": "Helvetica",
"styleIdentifier": "H1",
"size": 14
},
{
"name": "Helvetica-Bold",
"styleIdentifier": "H0Bold",
"size": 17
},
{
"name": "HelveticaNeue-Light",
"styleIdentifier": "H0Light",
"size": 40
}
]
}

所以我创建了一个 relationship(很多 - 许多)并选择了 ordered 选项。通过输入,我看到它总是以相同的方式写入核心数据,但是当我尝试获取它时

configuratation.fonts 其中 fonts 是一个 NSOrderedSet 我以完全随机的顺序获取项目。我想念规范中的某物?或者我应该以某种方式对其进行排序?

__EDIT__

首先,当我从上面的 json 获取数据时,我有一个带有空字体关系的配置集。然后我获取它并将其插入到核心数据中:

NSMutableArray *returnArray = [NSMutableArray new];
for(NSDictionary *fontDictionary in jsonArray) {
Font *fontObj = [Font font:fontDictionary inContext:context];
[returnArray addObject:fontObj];
}

并且在这个数组中数据的顺序是正确的。然后在配置对象中,我通过以下方式将其添加到 NSOrderedSet:

-(void)appendTracks:(NSArray<Font*>*)fontArray {
self.fonts = [NSOrderedSet orderedSetWithArray: fontArray];
}

然后我尝试通过简单地使用引用来获取它:

configuration.fonts

并且在这一步中数据的顺序完全不正确。

最佳答案

不要直接设置 NSOrderedSet。

或者修改现有的集合:

[self.fonts addObjectsFromArray:fontArray];

或者:

Xcode 生成方法来在生成的 NSManagedObject 类中添加和删除有序集中的条目。

假设您有一个名为 ManagedConfigurationEntity,它包含一个名为 fonts 的有序到多的关系:

ManagedConfiguration *managedObjectConfigurationInstance = //create or fetch configuration in ManagedObjectContext
NSOrderedSet<ManagedFont> *fonts = //created or fetched fonts in wanted order
managedObjectConfigurationInstance.addToFonts(fonts)

replaceFontsremoveFromFontsAtIndex 同样。方法也被生成。


根据您的要求,您可能希望以随机顺序存储字体并将 NSSortDescriptor 应用于您的 NSFetchRequest 以按特定顺序获取数据。

关于ios - 来自服务器和核心数据的 NSOrderedSet 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40303449/

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