Configuration

public struct Configuration

A Configuration instance describes the different options used to create an instance of a Realm.

Configuration instances are just plain Swift structs. Unlike Realms and Objects, they can be freely shared between threads as long as you do not mutate them.

Creating configuration values for class subsets (by setting the objectClasses property) can be expensive. Because of this, you will normally want to cache and reuse a single configuration value for each distinct configuration rather than creating a new value each time you open a Realm.

  • The default Configuration used to create Realms when no configuration is explicitly specified (i.e. Realm())

    Declaration

    Swift

    public static var defaultConfiguration: Configuration
  • Creates a Configuration which can be used to create new Realm instances.

    Declaration

    Swift

    public init(fileURL: URL? = URL(fileURLWithPath: RLMRealmPathForFile("default.realm"), isDirectory: false),
                inMemoryIdentifier: String? = nil,
                encryptionKey: Data? = nil,
                readOnly: Bool = false,
                schemaVersion: UInt64 = 0,
                migrationBlock: MigrationBlock? = nil,
                deleteRealmIfMigrationNeeded: Bool = false,
                objectTypes: [Object.Type]? = nil)

    Parameters

    fileURL

    The local URL to the Realm file.

    inMemoryIdentifier

    A string used to identify a particular in-memory Realm.

    encryptionKey

    An optional 64-byte key to use to encrypt the data.

    readOnly

    Whether the Realm is read-only (must be true for read-only files).

    schemaVersion

    The current schema version.

    migrationBlock

    The block which migrates the Realm to the current version.

    deleteRealmIfMigrationNeeded

    If true, recreate the Realm file with the provided schema if a migration is required.

    objectTypes

    The subset of Object subclasses persisted in the Realm.

  • The local URL of the Realm file. Mutually exclusive with inMemoryIdentifier.

    Declaration

    Swift

    public var fileURL: URL?
  • A string used to identify a particular in-memory Realm. Mutually exclusive with fileURL.

    Declaration

    Swift

    public var inMemoryIdentifier: String?
  • A 64-byte key to use to encrypt the data, or nil if encryption is not enabled.

    Declaration

    Swift

    public var encryptionKey: Data? = nil
  • Whether to open the Realm in read-only mode.

    This is required to be able to open Realm files which are not writeable or are in a directory which is not writeable. This should only be used on files which will not be modified by anyone while they are open, and not just to get a read-only view of a file which may be written to by another thread or process. Opening in read-only mode requires disabling Realm’s reader/writer coordination, so committing a write transaction from another process will result in crashes.

    Declaration

    Swift

    public var readOnly: Bool = false
  • The current schema version.

    Declaration

    Swift

    public var schemaVersion: UInt64 = 0
  • The block which migrates the Realm to the current version.

    Declaration

    Swift

    public var migrationBlock: MigrationBlock? = nil
  • Whether to recreate the Realm file with the provided schema if a migration is required. This is the case when the stored schema differs from the provided schema or the stored schema version differs from the version on this configuration. Setting this property to true deletes the file if a migration would otherwise be required or executed.

    Note

    Setting this property to true doesn’t disable file format migrations.

    Declaration

    Swift

    public var deleteRealmIfMigrationNeeded: Bool = false
  • The classes managed by the Realm.

    Declaration

    Swift

    public var objectTypes: [Object.Type]?