Core data 在CoreData中的传感器数据集中的特定位置插入对象?
在CoreData中设置“多对多”关系并勾选“有序”框,将属性定义为一个OrderedSet 是否有一种有效的方法在特定位置插入对象或上下移动对象 或者我是否需要使用SensorDeredSet中的数据创建NSMutabledOrderedSet,插入或移动我的对象,然后将其转换回SensorDeredSetCore data 在CoreData中的传感器数据集中的特定位置插入对象?,core-data,nsorderedset,Core Data,Nsorderedset,在CoreData中设置“多对多”关系并勾选“有序”框,将属性定义为一个OrderedSet 是否有一种有效的方法在特定位置插入对象或上下移动对象 或者我是否需要使用SensorDeredSet中的数据创建NSMutabledOrderedSet,插入或移动我的对象,然后将其转换回SensorDeredSet 或者我应该使用标准NSSet并自己管理“position”属性吗?CoreData“创建NSManagedObject子类…”将生成许多方法,供您用来操作有序集。或者你也可以用Codege
或者我应该使用标准NSSet并自己管理“position”属性吗?CoreData“创建NSManagedObject子类…”将生成许多方法,供您用来操作有序集。或者你也可以用Codegen做同样的事情 目标C
@interface MyObject (CoreDataGeneratedAccessors)
- (void)insertObject:(NSManagedObject *)value inItemsAtIndex:(NSUInteger)idx;
- (void)removeObjectFromItemsAtIndex:(NSUInteger)idx;
- (void)insertItems:(NSArray<NSManagedObject *> *)value atIndexes:(NSIndexSet *)indexes;
- (void)removeItemsAtIndexes:(NSIndexSet *)indexes;
- (void)replaceObjectInItemsAtIndex:(NSUInteger)idx withObject:(NSManagedObject *)value;
- (void)replaceItemsAtIndexes:(NSIndexSet *)indexes withItems:(NSArray<NSManagedObject *> *)values;
- (void)addItemsObject:(NSManagedObject *)value;
- (void)removeItemsObject:(NSManagedObject *)value;
- (void)addItems:(NSOrderedSet<NSManagedObject *> *)values;
- (void)removeItems:(NSOrderedSet<NSManagedObject *> *)values;
@end
否则,只需创建一个可变副本,根据需要进行操作,然后将其设置回NSManagedObject。顺便说一句,您也不需要将其转换回不可变集请澄清这些方法是在哪里生成的?它们似乎不适用于我的属性。我使用的是Swift,属性声明如下:
code
@NSManaged-var-elements:NSOrderedSet?如果我开始键入以下内容,它不会自动完成:elements.inserts它们在swift中的名称将不同,核心数据将生成YourClass+CoreDataProperties.swift它们将在其中生成的Class+CoreDataProperties.swift只有属性。没有办法。顺便说一句,我正在使用iOS。我刚刚在一个新的swift项目中完成了这项工作,并将生成的方法的swift版本添加到我的答案中。不要制作可变副本,请使用mutableOrderedSetValueForKey
。
// MARK: Generated accessors for items
extension MyObject {
@objc(insertObject:inItemsAtIndex:)
@NSManaged public func insertIntoItems(_ value: NSManagedObject, at idx: Int)
@objc(removeObjectFromItemsAtIndex:)
@NSManaged public func removeFromItems(at idx: Int)
@objc(insertItems:atIndexes:)
@NSManaged public func insertIntoItems(_ values: [NSManagedObject], at indexes: NSIndexSet)
@objc(removeItemsAtIndexes:)
@NSManaged public func removeFromItems(at indexes: NSIndexSet)
@objc(replaceObjectInItemsAtIndex:withObject:)
@NSManaged public func replaceItems(at idx: Int, with value: NSManagedObject)
@objc(replaceItemsAtIndexes:withItems:)
@NSManaged public func replaceItems(at indexes: NSIndexSet, with values: [NSManagedObject])
@objc(addItemsObject:)
@NSManaged public func addToItems(_ value: NSManagedObject)
@objc(removeItemsObject:)
@NSManaged public func removeFromItems(_ value: NSManagedObject)
@objc(addItems:)
@NSManaged public func addToItems(_ values: NSOrderedSet)
@objc(removeItems:)
@NSManaged public func removeFromItems(_ values: NSOrderedSet)
}