Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Ссылка платформы CoreData ссылка класса NSMergePolicy

Опции
Развертывание Target:

На этой странице
Язык:

NSMergePolicy

Наследование


Соответствует


Оператор импорта


Swift

import CoreData

Objective C

@import CoreData;

Доступность


Доступный в iOS 5.0 и позже.

Вы используете объект политики слияния для разрешения конфликтов между персистентным хранилищем и версиями в памяти управляемых объектов.

Конфликт является несоответствием между состоянием, сохраненным на двух различных уровнях в Базовом Стеке данных. Когда у Вас есть устаревшие данные на некотором уровне, конфликт может возникнуть при сохранении контекста управляемого объекта. Существует два места, в которых может произойти конфликт:

  • Между контекстом управляемого объекта и его кэшируемым состоянием в памяти в персистентном координаторе хранилища уровень.

  • Между кэшируемым состоянием в персистентном координаторе хранилища и внешним хранилищем (файл, база данных, и т.д.).

Конфликты представлены экземплярами NSMergeConflict.

  • init (mergeType:) - initWithMergeType: Определяемый инициализатор

    Возвращает политику слияния, инициализированную с данным типом политики.

    Объявление

    Swift

    init(mergeType ty: NSMergePolicyType)

    Objective C

    - (id)initWithMergeType:(NSMergePolicyType)ty

    Параметры

    ty

    Тип политики слияния.

    Возвращаемое значение

    Политика слияния инициализируется с данным типом политики.

    Обсуждение

    При переопределении этого метода в подклассе необходимо вызвать реализацию суперкласса с политикой слияния, которая является самой близкой к поведению, которое Вы хотите.

    • Это упростит использовать реализацию суперкласса resolveConflicts:error: и затем настройте результаты.

    • Вследствие сложности слияния с - много отношений, этот класс разработан с ожиданием, что Вы вызываете супер как базовое внедрение.

    Оператор импорта

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

    Доступный в iOS 5.0 и позже.

  • Разрешает конфликты в данном списке.

    Объявление

    Swift

    func resolveConflicts(_ list: [AnyObject], error error: NSErrorPointer) -> Bool

    Objective C

    - (BOOL)resolveConflicts:(NSArray *)list error:(NSError **)error

    Параметры

    list

    Массив конфликтов слияния (экземпляры NSMergeConflict).

    error

    Если ошибка происходит, по возврату содержит NSError объект, описывающий проблему.

    Возвращаемое значение

    YEStrue если конфликты были разрешены успешно, иначе NOfalse.

    Обсуждение

    При переопределении этого метода в подклассе необходимо обычно вызывать реализацию суперкласса в дополнение к выполнению собственных операций.

    Оператор импорта

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

    Доступный в iOS 5.0 и позже.

  • mergeType Свойство

    Тип слияния. (только для чтения)

    Объявление

    Swift

    var mergeType: NSMergePolicyType { get }

    Objective C

    @property(readonly) NSMergePolicyType mergeType

    Оператор импорта

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

    Доступный в iOS 5.0 и позже.

  • Одноэлементные объекты политики слияния, определяющие стандартные способы обработать конфликты во время работы сохранения.

    Объявление

    Swift

    var NSErrorMergePolicy: AnyObject! var NSMergeByPropertyStoreTrumpMergePolicy: AnyObject! var NSMergeByPropertyObjectTrumpMergePolicy: AnyObject! var NSOverwriteMergePolicy: AnyObject! var NSRollbackMergePolicy: AnyObject!

    Objective C

    id NSErrorMergePolicy; id NSMergeByPropertyStoreTrumpMergePolicy; id NSMergeByPropertyObjectTrumpMergePolicy; id NSOverwriteMergePolicy; id NSRollbackMergePolicy;

    Константы

    • NSErrorMergePolicy

      Если существуют какие-либо конфликты слияния, эта политика заставляет сохранение перестать работать.

      Это - политика по умолчанию для всех контекстов управляемого объекта.

      В случае отказа метод сохранения возвращается с ошибкой с userInfo словарем, содержащим идентификаторы объектов объектов, имевших конфликты (NSInsertedObjectsKey, NSUpdatedObjectsKey).

      Доступный в iOS 3.0 и позже.

    • NSMergeByPropertyStoreTrumpMergePolicy

      Эта политика объединяет конфликты между версией персистентного хранилища объекта и текущей версией в памяти, давая приоритет внешним изменениям.

      Слияние происходит отдельным свойством. Для свойств, измененных и во внешнем источнике и в памяти, внешние изменения превосходят в памяти.

      Доступный в iOS 3.0 и позже.

    • NSMergeByPropertyObjectTrumpMergePolicy

      Эта политика объединяет конфликты между версией персистентного хранилища объекта и текущей версией в памяти, давая приоритет изменениям в памяти.

      Слияние происходит отдельным свойством. Для свойств, измененных и во внешнем источнике и в памяти, изменения в памяти превосходят внешние.

      Доступный в iOS 3.0 и позже.

    • NSOverwriteMergePolicy

      Эта политика перезаписывает состояние в персистентном хранилище для измененных объектов в конфликте.

      Текущее состояние измененных объектов вызывается на персистентное хранилище.

      Доступный в iOS 3.0 и позже.

    • NSRollbackMergePolicy

      Эта политика отбрасывает изменения состояния в памяти для объектов в конфликте.

      Версия персистентного хранилища состояния объектов используется.

      Доступный в iOS 3.0 и позже.

    Обсуждение

    Политика по умолчанию NSErrorMergePolicy. Это - единственная политика, требующая, чтобы действие исправило любые конфликты; другие политики заставляют сохранение пройти через тихо путем внесения изменений, соблюдающих их правила.

  • Константы для определения типов политики слияния.

    Объявление

    Swift

    enum NSMergePolicyType : UInt { case ErrorMergePolicyType case MergeByPropertyStoreTrumpMergePolicyType case MergeByPropertyObjectTrumpMergePolicyType case OverwriteMergePolicyType case RollbackMergePolicyType }

    Objective C

    enum { NSErrorMergePolicyType = 0x00, NSMergeByPropertyStoreTrumpMergePolicyType = 0x01, NSMergeByPropertyObjectTrumpMergePolicyType = 0x02, NSOverwriteMergePolicyType = 0x03, NSRollbackMergePolicyType = 0x04 }; typedef NSUInteger NSMergePolicyType;

    Константы

    • ErrorMergePolicyType

      NSErrorMergePolicyType

      Указывает политику, заставляющую сохранение перестать работать, если существуют какие-либо конфликты слияния.

      Доступный в iOS 5.0 и позже.

    • MergeByPropertyStoreTrumpMergePolicyType

      NSMergeByPropertyStoreTrumpMergePolicyType

      Указывает политику, что слияния конфликтуют между версией персистентного хранилища объекта и текущей версией в памяти, давая приоритет внешним изменениям.

      Доступный в iOS 5.0 и позже.

    • MergeByPropertyObjectTrumpMergePolicyType

      NSMergeByPropertyObjectTrumpMergePolicyType

      Указывает политику, что слияния конфликтуют между версией персистентного хранилища объекта и текущей версией в памяти, давая приоритет изменениям в памяти.

      Доступный в iOS 5.0 и позже.

    • OverwriteMergePolicyType

      NSOverwriteMergePolicyType

      Указывает политику, что перезаписи утверждают в персистентном хранилище для измененных объектов в конфликте.

      Доступный в iOS 5.0 и позже.

    • RollbackMergePolicyType

      NSRollbackMergePolicyType

      Указывает политику, отбрасывающую изменения состояния в памяти для объектов в конфликте.

      Доступный в iOS 5.0 и позже.

    Оператор импорта

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

    Доступный в iOS 5.0 и позже.