gpt4 book ai didi

iOS : Core Data: How to retain an ordered set of objects in a managed object

转载 作者:可可西里 更新时间:2023-11-01 05:39:14 26 4
gpt4 key购买 nike

我的 iOS 应用程序中有一个 NSManagedObject。该对象称为 Round。在 Round 中,我与一堆 Person 对象有一对多关系。

xCode 使用 NSSet 作为我与 Person 托管对象的一对多关系的数据类型生成我的托管对象类。

所以我的 Round 托管对象看起来像这样:

@interface Round :  NSManagedObject  
{
}

@property (nonatomic, retain) NSSet* people;

@end

但是 NSSet 不是一个有序的集合,我想保留我用来保存这些 Person 对象的 NSArray 的顺序,因为我将它分配给我的 Round 托管对象。

我尝试将我的 NSArray 转换为 NSSet,但是集合的原始顺序没有保留。

我尝试在我的 Round 托管对象中将类型从 NSSet 更改为 NSArray,但在运行时出现以下错误。

2011-03-11 14:00:06.950 SkeetTracker[42782:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: **'Unacceptable type of value for to-many relationship: property = "people"; desired type = NSSet; given type = __NSArrayM;** value = (    " (entity: Person; id: 0x5bed0c0  ; data: {\n    firstName = Todd;\n    lastName = McFarlane;\n    round = \"0x5bf2cb0 \";\n    scores = \"\";\n})",

有没有人遇到过这样的事情并且知道解决办法?

亲切的问候,乔治

最佳答案

我相信 iOS 5 实际上已经内置了它 - 但无论如何,如果您想要一个持久 排序顺序,您需要有一个存储的属性,您可以创建一个 NSSortDescription 来自。然后再添加一个返回 [NSSet sortedArrayUsingDescriptors:self.unsortedSetMethod] 数组的方法(我更喜欢只读属性,这样我也可以点访问它)。

关于iOS : Core Data: How to retain an ordered set of objects in a managed object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5278931/

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