Protocolos

Os seguintes protocolos estão disponíveis globalmente.

Identificável

  • Um protocolo que define uma identidade padrão para Objeto de Realm

    Declarar sua subclasse de objeto em conformidade com esse protocolo fornecerá uma implementação padrão para a Identifiable id , que funciona para Objeto de Realm:

    // Automatically conforms to `Identifiable`
    class MyObjectType: Object, ObjectKeyIdentifiable {
        // ...
    }
    

    Você também pode estar em conformidade com Identifiable manualmente se desejar, mas observe que o uso do endereço de memória do objeto não funciona para objeto managed.

    Veja mais

    Declaração

    Swift

    @available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
    public protocol ObjectKeyIdentifiable : ObjectBase, Identifiable

Combinar

  • Um tipo que pode ser passado para valuePublisher() ou changesetPublisher().

    Declaração

    Swift

    @available(macOS 10.15, watchOS 6.0, iOS 13.0, iOSApplicationExtension 13.0, macOSApplicationExtension 10.15, tvOS 13.0, *)
    public protocol RealmSubscribable
  • Uma collection uniforme de Objects que pode ser recuperada, filtrada, classificada e operada.

    Veja mais

    Declaração

    Swift

    public protocol RealmCollection : RealmCollectionBase
  • Uma coleção uniforme de valores-chave de Objects que pode ser recuperada, filtrada, classificada e operada.

    Veja mais

    Declaração

    Swift

    public protocol RealmKeyedCollection : ThreadConfined, CustomStringConvertible, Sequence
  • delegado que é usado para assinar alterações em um fluxo MongoCollection.watch() .

    Veja mais

    Declaração

    Swift

    public protocol ChangeEventDelegate : AnyObject
  • Um tipo de enumeração que pode ser armazenado em um Objeto de Realm.

    Somente enumerações @objc apoiados por um Int podem ser armazenados em um Objeto de Realm, e o tipo de enumeração deve estar explicitamente em conformidade com esse protocolo. Por exemplo:

    @objc enum MyEnum: Int, RealmEnum {
       case first = 1
       case second = 2
       case third = 7
    }
    
    class MyModel: Object {
       @objc dynamic enumProperty = MyEnum.first
       let optionalEnumProperty = RealmOptional<MyEnum>()
    }
    

    Declaração

    Swift

    public protocol RealmEnum : RealmOptionalType, _RealmSchemaDiscoverable
  • Um protocolo que descreve os tipos que podem parametrizar um RealmOptional.

    Declaração

    Swift

    public protocol RealmOptionalType
  • Um tipo que pode ser armazenado em uma Lista de Realm, MutableSet ou Results.

    Declarar tipos adicionais como em conformidade com este protocolo não os fará realmente funcionar. A maior parte da lógica de como armazenar valores no Realm não está implementada no Swift e, atualmente, não há mecanismo de extensão para oferecer suporte a mais tipos.

    Declaração

    Swift

    public protocol RealmCollectionValue : _RealmSchemaDiscoverable, Hashable
  • Um protocolo que descreve os tipos que podem parametrizar um RealmPropertyType.

    Declaração

    Swift

    public protocol RealmPropertyType

MinMaxType

  • Tipos de propriedade que podem ser usadas com as API de valor mínimo e máximo.

    Veja

    min(ofProperty:), max(ofProperty:)

    Declaração

    Swift

    public protocol MinMaxType

AddableType

  • Tipos de propriedade que podem ser usadas com as API de soma e valor médio.

    Veja

    sum(ofProperty:), average(ofProperty:)

    Declaração

    Swift

    public protocol AddableType
  • objeto de tipos que estão em conformidade com ThreadConfined podem ser managed por um Realm, o que os tornará vinculados a uma instância Realm específica do thread. Os managed objeto devem ser explicitamente exportados e importados para serem passados entre threads.

    Managed objeto em conformidade com este protocolo podem ser convertidas em uma referência segura de thread para transporte entre threads passando para o construtor ThreadSafeReference(to:) .

    Observe que somente os tipos definidos pelo Realm podem estar em conformidade com este protocolo, e definir novas classes que tentam estar em conformidade com ele não as fará funcionar com ThreadSafeReference.

    Veja mais

    Declaração

    Swift

    public protocol ThreadConfined