CoreData «Создание подклассов NSManagedObject ...» создаст много методов, которые вы сможете использовать для управления вашим упорядоченным набором. Или вы можете сделать то же самое с Codegen.
Objective 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
Swift
// 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)
}
В противном случае да просто сделать изменяемую копию, манипулировать по мере необходимости, а затем установить его обратно в NSManagedObject. btw, вам не нужно преобразовывать его обратно в не изменяемый набор
Не могли бы вы прояснить, где эти методы сгенерированы? Кажется, они не доступны для моего атрибута. Я использую Swift, и атрибут объявляется следующим образом: 'code' @ NSManaged var elements: NSOrderedSet? , если я начну вводить следующее, это не будет автоматически завершено: elements.insert – Duzmac
Они будут названы по-разному быстрыми, основные данные будут генерировать YourClass + CoreDataProperties.swift, они будут там – trapper
Класс + CoreDataProperties.swift, который был создан только с атрибутами. Нет методов. Я использую iOS btw. – Duzmac