iOS Developer Library

Developer

CoreData Framework Reference NSPersistentStoreCoordinator Class Reference

Options
Deployment Target:

On This Page
Language:

NSPersistentStoreCoordinator

Inherits From


Conforms To


Import Statement


Swift

import CoreData

Objective-C

@import CoreData;

Availability


Available in iOS 3.0 and later

Instances of NSPersistentStoreCoordinator associate persistent stores (by type) with a model (or more accurately, a configuration of a model) and serve to mediate between the persistent store or stores and the managed object context or contexts. Instances of NSManagedObjectContext use a coordinator to save object graphs to persistent storage and to retrieve model information. A context without a coordinator is not fully functional as it cannot access a model except through a coordinator. The coordinator is designed to present a façade to the managed object contexts such that a group of persistent stores appears as an aggregate store. A managed object context can then create an object graph based on the union of all the data stores the coordinator covers.

Coordinators do the opposite of providing for concurrency—€”they serialize operations. If you want to use multiple threads for different write operations you use multiple coordinators. Note that if multiple threads work directly with a coordinator, they need to lock and unlock it explicitly.

Each coordinator (and thus container) may use different copies, and hence different versions, of a managed object model. This allows you to cleanly deal with file versioning.

The coordinator gives access to its underlying object stores. You can retrieve an object store when you first add one (using addPersistentStoreWithType:configuration:URL:options:error:), or by using persistentStoreForURL: or persistentStores. This allows you to to determine, for example, whether a store has already been added, or whether two objects come from the same store.

For more details about these tasks, see Using Persistent Stores in Core Data Programming Guide.

  • Returns a dictionary of the registered store types.

    Declaration

    Swift

    class func registeredStoreTypes() -> [NSObject : AnyObject]

    Objective-C

    + (NSDictionary *)registeredStoreTypes

    Return Value

    A dictionary of the registered store types—the keys are the store type strings, and the values are the NSPersistentStore subclasses.

    Import Statement

    Objective-C

    @import CoreData;

    Swift

    import CoreData

    Availability

    Available in iOS 3.0 and later

  • Registers a given NSPersistentStore subclass for a given store type string.

    Declaration

    Swift

    class func registerStoreClass(_ storeClass: AnyClass?, forStoreType storeType: String)

    Objective-C

    + (void)registerStoreClass:(Class)storeClass forStoreType:(NSString *)storeType

    Parameters

    storeClass

    The NSPersistentStore subclass to use for the store of type storeType.

    storeType

    A unique string that identifies a store type.

    Discussion

    You must invoke this method before a custom subclass of NSPersistentStore can be loaded into a persistent store coordinator.

    You can pass nil for storeClass to unregister the store type.

    Import Statement

    Objective-C

    @import CoreData;

    Swift

    import CoreData

    Availability

    Available in iOS 3.0 and later

  • Initializes the receiver with a managed object model.

    Declaration

    Swift

    init(managedObjectModel model: NSManagedObjectModel)

    Objective-C

    - (instancetype)initWithManagedObjectModel:(NSManagedObjectModel *)model

    Parameters

    model

    A managed object model.

    Return Value

    The receiver, initialized with model.

    Import Statement

    Objective-C

    @import CoreData;

    Swift

    import CoreData

    Availability

    Available in iOS 3.0 and later

  • The receiver’s managed object model. (read-only)

    Declaration

    Swift

    var managedObjectModel: NSManagedObjectModel { get }

    Objective-C

    @property(readonly, strong) NSManagedObjectModel *managedObjectModel

    Import Statement

    Objective-C

    @import CoreData;

    Swift

    import CoreData

    Availability

    Available in iOS 3.0 and later

  • Adds a new persistent store of a specified type at a given location, and returns the new store.

    Declaration

    Swift

    func addPersistentStoreWithType(_ storeType: String, configuration configuration: String?, URL storeURL: NSURL?, options options: [NSObject : AnyObject]?, error error: NSErrorPointer) -> NSPersistentStore?

    Objective-C

    - (NSPersistentStore *)addPersistentStoreWithType:(NSString *)storeType configuration:(NSString *)configuration URL:(NSURL *)storeURL options:(NSDictionary *)options error:(NSError **)error

    Parameters

    storeType

    A string constant (such as NSSQLiteStoreType) that specifies the store type—see Store Types for possible values.

    configuration

    The name of a configuration in the receiver's managed object model that will be used by the new store. The configuration can be nil, in which case no other configurations are allowed.

    storeURL

    The file location of the persistent store.

    options

    A dictionary containing key-value pairs that specify whether the store should be read-only, and whether (for an XML store) the XML file should be validated against the DTD before it is read. For key definitions, see “Store Options” and “Migration Options”. This value may be nil.

    error

    If a new store cannot be created, upon return contains an instance of NSError that describes the problem

    Return Value

    The newly-created store or, if an error occurs, nil.

    Import Statement

    Objective-C

    @import CoreData;

    Swift

    import CoreData

    Availability

    Available in iOS 3.0 and later

  • Sets the URL for a given persistent store.

    Declaration

    Swift

    func setURL(_ url: NSURL, forPersistentStore store: NSPersistentStore) -> Bool

    Objective-C

    - (BOOL)setURL:(NSURL *)url forPersistentStore:(NSPersistentStore *)store

    Parameters

    url

    The new location for store.

    store

    A persistent store associated with the receiver.

    Return Value

    YEStrue if the store was relocated, otherwise NOfalse.

    Discussion

    For atomic stores, this method alters the location to which the next save operation will write the file; for non-atomic stores, invoking this method will relinquish the existing connection and create a new one at the specified URL. (For non-atomic stores, a store must already exist at the destination URL; a new store will not be created.)

    Import Statement

    Objective-C

    @import CoreData;

    Swift

    import CoreData

    Availability

    Available in iOS 3.0 and later

  • Removes a given persistent store.

    Declaration

    Swift

    func removePersistentStore(_ store: NSPersistentStore, error error: NSErrorPointer) -> Bool

    Objective-C

    - (BOOL)removePersistentStore:(NSPersistentStore *)store error:(NSError **)error

    Parameters

    store

    A persistent store.

    error

    If an error occurs, upon return contains an instance of NSError that describes the problem.

    Return Value

    YEStrue if the store is removed, otherwise NOfalse.

    Import Statement

    Objective-C

    @import CoreData;

    Swift

    import CoreData

    Availability

    Available in iOS 3.0 and later

  • Moves a persistent store to a new location, changing the storage type if necessary.

    Declaration

    Swift

    func migratePersistentStore(_ store: NSPersistentStore, toURL URL: NSURL, options options: [NSObject : AnyObject]?, withType storeType: String, error error: NSErrorPointer) -> NSPersistentStore?

    Objective-C

    - (NSPersistentStore *)migratePersistentStore:(NSPersistentStore *)store toURL:(NSURL *)URL options:(NSDictionary *)options withType:(NSString *)storeType error:(NSError **)error

    Parameters

    store

    A persistent store.

    URL

    An URL object that specifies the location for the new store.

    options

    A dictionary containing key-value pairs that specify whether the store should be read-only, and whether (for an XML store) the XML file should be validated against the DTD before it is read. For key definitions, see Store Options.

    storeType

    A string constant (such as NSSQLiteStoreType) that specifies the type of the new store—see Store Types.

    error

    If an error occurs, upon return contains an instance of NSError that describes the problem.

    Return Value

    If the migration is successful, the new store, otherwise nil.

    Discussion

    This method is typically used for “Save As”€ operations. Performance may vary depending on the type of old and new store. For more details of the action of this method, see Persistent Store Features in Core Data Programming Guide.

    Import Statement

    Objective-C

    @import CoreData;

    Swift

    import CoreData

    Availability

    Available in iOS 3.0 and later

  • The persistent stores associated with the receiver. (read-only)

    Declaration

    Swift

    var persistentStores: [AnyObject] { get }

    Objective-C

    @property(readonly, strong) NSArray *persistentStores

    Import Statement

    Objective-C

    @import CoreData;

    Swift

    import CoreData

    Availability

    Available in iOS 3.0 and later

  • Returns the persistent store for the specified URL.

    Declaration

    Swift

    func persistentStoreForURL(_ URL: NSURL) -> NSPersistentStore?

    Objective-C

    - (NSPersistentStore *)persistentStoreForURL:(NSURL *)URL

    Parameters

    URL

    An URL object that specifies the location of a persistent store.

    Return Value

    The persistent store at the location specified by URL.

    Import Statement

    Objective-C

    @import CoreData;

    Swift

    import CoreData

    Availability

    Available in iOS 3.0 and later

  • Returns the URL for a given persistent store.

    Declaration

    Swift

    func URLForPersistentStore(_ store: NSPersistentStore) -> NSURL

    Objective-C

    - (NSURL *)URLForPersistentStore:(NSPersistentStore *)store

    Parameters

    store

    A persistent store.

    Return Value

    The URL for store.

    Import Statement

    Objective-C

    @import CoreData;

    Swift

    import CoreData

    Availability

    Available in iOS 3.0 and later

  • Deletes all ubiquitous content for all peers for the persistent store at a given URL and also delete the local store file.

    Declaration

    Swift

    class func removeUbiquitousContentAndPersistentStoreAtURL(_ storeURL: NSURL, options options: [NSObject : AnyObject]?, error error: NSErrorPointer) -> Bool

    Objective-C

    + (BOOL)removeUbiquitousContentAndPersistentStoreAtURL:(NSURL *)storeURL options:(NSDictionary *)options error:(NSError **)error

    Parameters

    storeURL

    The URL of the store to delete.

    options

    A dictionary containing the options normally passed to addPersistentStoreWithType:configuration:URL:options:error:.

    error

    If the operation fails, upon return contains an NSError object that describes the problem.

    Return Value

    YEStrue if the store was deleted, otherwise NOfalse.

    Discussion

    Errors may be returned as a result of file I/O, iCloud network or iCloud account issues.

    Import Statement

    Objective-C

    @import CoreData;

    Swift

    import CoreData

    Availability

    Available in iOS 7.0 and later

  • Sends a request to all the persistent stores associated with the receiver.

    Declaration

    Swift

    func executeRequest(_ request: NSPersistentStoreRequest, withContext context: NSManagedObjectContext, error error: NSErrorPointer) -> AnyObject?

    Objective-C

    - (id)executeRequest:(NSPersistentStoreRequest *)request withContext:(NSManagedObjectContext *)context error:(NSError **)error

    Parameters

    request

    A fetch or save request.

    context

    The context against which request should be executed.

    error

    If an error occurs, upon return contains an NSError object that describes the problem.

    Return Value

    An array containing managed objects, managed object IDs, or dictionaries as appropriate for a fetch request; an empty array if request is a save request, or nil if an error occurred.

    User defined requests return arrays of arrays, where a nested array is the result returned from a single store.

    Import Statement

    Objective-C

    @import CoreData;

    Swift

    import CoreData

    Availability

    Available in iOS 5.0 and later

  • lock() - lock (iOS 8.0)

    Attempts to acquire a lock.

    Declaration

    Swift

    func lock()

    Objective-C

    - (void)lock

    Discussion

    This method blocks a thread’€™s execution until the lock can be acquired. An application protects a critical section of code by requiring a thread to acquire a lock before executing the code. Once the critical section is past, the thread relinquishes the lock by invoking unlock.

    Import Statement

    Objective-C

    @import CoreData;

    Swift

    import CoreData

    Availability

    Available in iOS 3.0 and later

    Deprecated in iOS 8.0

  • tryLock() - tryLock (iOS 8.0)

    Attempts to acquire a lock.

    Declaration

    Swift

    func tryLock() -> Bool

    Objective-C

    - (BOOL)tryLock

    Return Value

    YEStrue if successful, otherwise NOfalse.

    Discussion

    Returns immediately—contrast lock which blocks.

    Import Statement

    Objective-C

    @import CoreData;

    Swift

    import CoreData

    Availability

    Available in iOS 3.0 and later

    Deprecated in iOS 8.0

  • unlock() - unlock (iOS 8.0)

    Relinquishes a previously acquired lock.

    Declaration

    Swift

    func unlock()

    Objective-C

    - (void)unlock

    Import Statement

    Objective-C

    @import CoreData;

    Swift

    import CoreData

    Availability

    Available in iOS 3.0 and later

    Deprecated in iOS 8.0

  • Returns an object ID for the specified URI representation of an object ID if a matching store is available, or nil if a matching store cannot be found.

    Declaration

    Swift

    func managedObjectIDForURIRepresentation(_ URL: NSURL) -> NSManagedObjectID?

    Objective-C

    - (NSManagedObjectID *)managedObjectIDForURIRepresentation:(NSURL *)URL

    Parameters

    URL

    An URL object containing a URI that specify a managed object.

    Return Value

    An object ID for the object specified by URL.

    Discussion

    The URI representation contains a UUID of the store the ID is coming from, and the coordinator can match it against the stores added to it.

    Import Statement

    Objective-C

    @import CoreData;

    Swift

    import CoreData

    Availability

    Available in iOS 3.0 and later

    See Also

    URIRepresentation (NSManagedObjectID)
    objectWithID: (NSManagedObjectContext)

  • Types of persistent store.

    Declaration

    Swift

    let NSSQLiteStoreType: String let NSBinaryStoreType: String let NSInMemoryStoreType: String

    Objective-C

    NSString * const NSSQLiteStoreType; NSString * const NSBinaryStoreType; NSString * const NSInMemoryStoreType;

    Constants

    • NSSQLiteStoreType

      NSSQLiteStoreType

      The SQLite database store type.

      Available in iOS 3.0 and later

    • NSBinaryStoreType

      NSBinaryStoreType

      The binary store type.

      Available in iOS 3.0 and later

    • NSInMemoryStoreType

      NSInMemoryStoreType

      The in-memory store type.

      Available in iOS 3.0 and later

  • Keys used in a store’€™s metadata dictionary.

    Declaration

    Swift

    let NSStoreTypeKey: String let NSStoreUUIDKey: String

    Objective-C

    NSString * const NSStoreTypeKey; NSString * const NSStoreUUIDKey;

    Constants

    • NSStoreTypeKey

      NSStoreTypeKey

      The key in the metadata dictionary to identify the store type.

      Available in iOS 3.0 and later

    • NSStoreUUIDKey

      NSStoreUUIDKey

      The key in the metadata dictionary to identify the store UUID.

      The store UUID is useful to identify stores through URI representations, but it is not guaranteed to be unique. The UUID generated for new stores is unique—users can freely copy files and thus the UUID stored inside—so if you track or reference stores explicitly you need to be aware of duplicate UUIDs and potentially override the UUID when a new store is added to the list of known stores in your application.

      Available in iOS 3.0 and later

  • An NSPersistentStoreCoordinatorStoresDidChangeNotification notification is posted whenever persistent stores are added to or removed from a persistent store coordinator, or when store UUIDs change. The userInfo dictionary contains information about the stores that were added or removed using these keys.

    Declaration

    Swift

    let NSAddedPersistentStoresKey: String let NSRemovedPersistentStoresKey: String let NSUUIDChangedPersistentStoresKey: String let NSPersistentStoreUbiquitousTransitionTypeKey: String

    Objective-C

    NSString * const NSAddedPersistentStoresKey; NSString * const NSRemovedPersistentStoresKey; NSString * const NSUUIDChangedPersistentStoresKey; NSString * const NSPersistentStoreUbiquitousTransitionTypeKey;

    Constants

    • NSAddedPersistentStoresKey

      NSAddedPersistentStoresKey

      Key for the array of stores that were added.

      Available in iOS 3.0 and later

    • NSRemovedPersistentStoresKey

      NSRemovedPersistentStoresKey

      Key for the array of stores that were removed.

      Available in iOS 3.0 and later

    • NSUUIDChangedPersistentStoresKey

      NSUUIDChangedPersistentStoresKey

      Key for an array containing the old and new stores.

      The object at index 0 is the old store instance, and the object at index 1 the new. When migration happens, the array contains a third object (at index 2) that is an array containing the new objectIDs for all the migrated objects.

      Available in iOS 3.0 and later

    • NSPersistentStoreUbiquitousTransitionTypeKey

      NSPersistentStoreUbiquitousTransitionTypeKey

      In the NSPersistentStoreCoordinatorStoresWillChangeNotification and NSPersistentStoreCoordinatorStoresDidChangeNotification userInfo dictionaries, this identifies the type of event. The corresponding value is one of the NSPersistentStoreUbiquitousTransitionType enum values as an NSNumber object.

      Available in iOS 7.0 and later

  • Keys for the options dictionary used in addPersistentStoreWithType:configuration:URL:options:error:, migratePersistentStore:toURL:options:withType:error:, and importStoreWithIdentifier:fromExternalRecordsDirectory:toURL:options:withType:error:.

    Declaration

    Swift

    let NSReadOnlyPersistentStoreOption: String let NSPersistentStoreTimeoutOption: String let NSSQLitePragmasOption: String let NSSQLiteAnalyzeOption: String let NSSQLiteManualVacuumOption: String let NSPersistentStoreFileProtectionKey: String let NSPersistentStoreUbiquitousContentNameKey: String let NSPersistentStoreUbiquitousContentURLKey: String let NSPersistentStoreUbiquitousPeerTokenOption: String let NSPersistentStoreRemoveUbiquitousMetadataOption: String let NSPersistentStoreUbiquitousContainerIdentifierKey: String let NSPersistentStoreRebuildFromUbiquitousContentOption: String

    Objective-C

    NSString * const NSReadOnlyPersistentStoreOption; NSString * const NSPersistentStoreTimeoutOption; NSString * const NSSQLitePragmasOption; NSString * const NSSQLiteAnalyzeOption; NSString * const NSSQLiteManualVacuumOption; NSString * const NSPersistentStoreFileProtectionKey; NSString * const NSPersistentStoreUbiquitousContentNameKey; NSString * const NSPersistentStoreUbiquitousContentURLKey; NSString * const NSPersistentStoreUbiquitousPeerTokenOption; NSString * const NSPersistentStoreRemoveUbiquitousMetadataOption; NSString * const NSPersistentStoreUbiquitousContainerIdentifierKey; NSString * const NSPersistentStoreRebuildFromUbiquitousContentOption;

    Constants

    • NSReadOnlyPersistentStoreOption

      NSReadOnlyPersistentStoreOption

      A flag that indicates whether a store is treated as read-only or not.

      The default value is NOfalse.

      Available in iOS 3.0 and later

    • NSPersistentStoreTimeoutOption

      NSPersistentStoreTimeoutOption

      Options key that specifies the connection timeout for Core Data stores.

      The corresponding value is an NSNumber object that represents the duration in seconds that Core Data will wait while attempting to create a connection to a persistent store. If a connection is cannot be made within that timeframe, the operation is aborted and an error is returned.

      Available in iOS 3.0 and later

    • NSSQLitePragmasOption

      NSSQLitePragmasOption

      Options key for a dictionary of SQLite pragma settings with pragma values indexed by pragma names as keys.

      All pragma values must be specified as NSString objects. The fullfsync and synchronous pragmas control the tradeoff between write performance (write to disk speed & cache utilization) and durability (data loss/corruption sensitivity to power interruption). For more information on pragma settings, see http://sqlite.org/pragma.html.

      Available in iOS 3.0 and later

    • NSSQLiteAnalyzeOption

      NSSQLiteAnalyzeOption

      Option key to run an analysis of the store data to optimize indices based on statistical information when the store is added to the coordinator.

      This invokes SQLite's ANALYZE command. It is ignored by stores other than the SQLite store.

      Available in iOS 3.0 and later

    • NSSQLiteManualVacuumOption

      NSSQLiteManualVacuumOption

      Option key to rebuild the store file, forcing a database wide defragmentation when the store is added to the coordinator.

      This invokes SQLite's VACUUM command. It is ignored by stores other than the SQLite store.

      Available in iOS 3.0 and later

    • NSPersistentStoreFileProtectionKey

      NSPersistentStoreFileProtectionKey

      Key to represent the protection class for the persistent store.

      Backward compatibility may preclude some features. The acceptable values are those defined for the NSFileProtectionKey. The default value is NSFileProtectionCompleteUntilFirstUserAuthentication for all applications built on or after iOS v5.0. The default value for all older applications is NSFileProtectionNone.

      Available in iOS 5.0 and later

    • NSPersistentStoreUbiquitousContentNameKey

      NSPersistentStoreUbiquitousContentNameKey

      Option to specify that a persistent store has a given name in ubiquity.

      This option is required for ubiquitous content to function.

      Available in iOS 5.0 and later

    • NSPersistentStoreUbiquitousContentURLKey

      NSPersistentStoreUbiquitousContentURLKey

      Option to specify the log path to use for ubiquitous content logs.

      In iOS 6 and OS X 10.8 and below, this option is required for ubiquitous content to function. In iOS 7 and OS X 10.9 and later, it is optional.

      Available in iOS 5.0 and later

    • NSPersistentStoreUbiquitousPeerTokenOption

      NSPersistentStoreUbiquitousPeerTokenOption

      The corresponding value is an optionally specified string which will be mixed in to Core Data’s identifier for each iCloud peer. The value must be an alphanumeric string without any special characters, whitespace or punctuation. The primary use for this option is to allow multiple applications on the same peer (device) to share a Core Data store integrated with iCloud. Each application will require its own store file.

      Available in iOS 7.0 and later

    • NSPersistentStoreRemoveUbiquitousMetadataOption

      NSPersistentStoreRemoveUbiquitousMetadataOption

      The corresponding value is an NSNumber object representing a boolean that indicates whether the receiver should remove all associated ubiquity metadata from a persistent store. You typically use this option during migration or copying to disassociate a persistent store file from an iCloud account.

      Available in iOS 7.0 and later

    • NSPersistentStoreUbiquitousContainerIdentifierKey

      NSPersistentStoreUbiquitousContainerIdentifierKey

      The corresponding value is a string specifying the iCloud container identifier Core Data should pass to URLForUbiquityContainerIdentifier:.

      Available in iOS 7.0 and later

    • NSPersistentStoreRebuildFromUbiquitousContentOption

      NSPersistentStoreRebuildFromUbiquitousContentOption

      The corresponding value is an NSNumber object representing a boolean that indicates whether the receiver should erase the local store file and rebuild it from the iCloud data in Mobile Documents.

      Available in iOS 7.0 and later

  • Migration options, specified in the dictionary of options when adding a persistent store using addPersistentStoreWithType:configuration:URL:options:error:.

    Declaration

    Swift

    let NSIgnorePersistentStoreVersioningOption: String let NSMigratePersistentStoresAutomaticallyOption: String let NSInferMappingModelAutomaticallyOption: String

    Objective-C

    NSString * const NSIgnorePersistentStoreVersioningOption; NSString * const NSMigratePersistentStoresAutomaticallyOption; NSString * const NSInferMappingModelAutomaticallyOption;

    Constants

    • NSIgnorePersistentStoreVersioningOption

      NSIgnorePersistentStoreVersioningOption

      Key to ignore the built-in versioning provided by Core Data.

      The corresponding value is an NSNumber object. If the boolValue of the number is YEStrue, Core Data will not compare the version hashes between the managed object model in the coordinator and the metadata for the loaded store. (It will, however, continue to update the version hash information in the metadata.) This key and corresponding value of YEStrue is specified by default for all applications linked on or before OS X v10.4.

      Available in iOS 3.0 and later

    • NSMigratePersistentStoresAutomaticallyOption

      NSMigratePersistentStoresAutomaticallyOption

      Key to automatically attempt to migrate versioned stores.

      The corresponding value is an NSNumber object. If the boolValue of the number is YEStrue and if the version hash information for the added store is determined to be incompatible with the model for the coordinator, Core Data will attempt to locate the source and mapping models in the application bundles, and perform a migration.

      Available in iOS 3.0 and later

    • NSInferMappingModelAutomaticallyOption

      NSInferMappingModelAutomaticallyOption

      Key to attempt to create the mapping model automatically.

      The corresponding value is an NSNumber object. If the boolValue of the number is YEStrue and the value of the NSMigratePersistentStoresAutomaticallyOption is YEStrue, the coordinator will attempt to infer a mapping model if none can be found.

      Available in iOS 3.0 and later

  • Keys in store metadata to support versioning.

    Declaration

    Swift

    let NSStoreModelVersionHashesKey: String let NSStoreModelVersionIdentifiersKey: String let NSPersistentStoreOSCompatibility: String

    Objective-C

    NSString * const NSStoreModelVersionHashesKey; NSString * const NSStoreModelVersionIdentifiersKey; NSString * const NSPersistentStoreOSCompatibility;

    Constants

    • NSStoreModelVersionHashesKey

      NSStoreModelVersionHashesKey

      Key to represent the version hash information for the model used to create the store.

      This key is used in the metadata for a persistent store.

      Available in iOS 3.0 and later

    • NSStoreModelVersionIdentifiersKey

      NSStoreModelVersionIdentifiersKey

      Key to represent the version identifiers for the model used to create the store.

      If you add your own annotations to a model’s version identifier (see versionIdentifiers), they are stored in the persistent store’s metadata. You can use this key to retrieve the identifiers from the metadata dictionaries available from NSPersistentStore (metadata) and NSPersistentStoreCoordinator (metadataForPersistentStore: and related methods). The corresponding value is a Foundation collection (an NSArray or NSSet object).

      Available in iOS 3.0 and later

    • NSPersistentStoreOSCompatibility

      NSPersistentStoreOSCompatibility

      Key to represent the earliest version of the operation system that the persistent store supports.

      The corresponding value is an NSNumber object that takes the form of the constants defined by the availability macros defined in /usr/include/AvailabilityMacros.h; for example 1040 represents OS X version 10.4.0.

      Backward compatibility may preclude some features.

      Available in iOS 3.0 and later

  • These constants are used as the value corresponding to the NSPersistentStoreUbiquitousTransitionTypeKey in the user info dictionary of NSPersistentStoreCoordinatorStoresWillChangeNotification and NSPersistentStoreCoordinatorStoresDidChangeNotification notifications to identify the type of event leading to a change.

    Declaration

    Swift

    enum NSPersistentStoreUbiquitousTransitionType : UInt { case AccountAdded case AccountRemoved case ContentRemoved case InitialImportCompleted }

    Objective-C

    typedef NS_ENUM (NSUInteger, NSPersistentStoreUbiquitousTransitionType ) { NSPersistentStoreUbiquitousTransitionTypeAccountAdded, NSPersistentStoreUbiquitousTransitionTypeAccountRemoved, NSPersistentStoreUbiquitousTransitionTypeContentRemoved, NSPersistentStoreUbiquitousTransitionTypeInitialImportCompleted };

    Constants

    • AccountAdded

      NSPersistentStoreUbiquitousTransitionTypeAccountAdded

      This value indicates that a new iCloud account is available, and the persistent store in use will or did transition to the new account.

      It is only possible to discern this state when the application is running, and therefore this transition type will only be posted if the account changes while the application is running or in the background.

      Available in iOS 7.0 and later

    • AccountRemoved

      NSPersistentStoreUbiquitousTransitionTypeAccountRemoved

      This value indicates that no iCloud account is available, and the persistent store in use will or did transition to the “local” store.

      It is only possible to discern this state when the application is running, and therefore this transition type will only be posted if the account is removed while the application is running or in the background.

      Available in iOS 7.0 and later

    • ContentRemoved

      NSPersistentStoreUbiquitousTransitionTypeContentRemoved

      This value indicates that the user has wiped the contents of the iCloud account, usually using Delete All from Documents & Data in Settings.

      The Core Data integration will transition to an empty store file as a result of this event.

      Available in iOS 7.0 and later

    • InitialImportCompleted

      NSPersistentStoreUbiquitousTransitionTypeInitialImportCompleted

      This value indicates that the Core Data integration has finished building a store file that is consistent with the contents of the iCloud account, and is ready to replace the fallback store with that file.

      Available in iOS 7.0 and later

    Import Statement

    Objective-C

    @import CoreData;

    Swift

    import CoreData

    Availability

    Available in iOS 7.0 and later