Objeto
extension Object: ObservableObject
extension Object: RealmCollectionValue
extension Object: ThreadConfined
-
Um editor que emite um cancelamento toda vez que o objeto muda.
Apesar do nome, isso é realmente emitido após a mudança do objeto.
Declaração
Swift
public var objectWillChange: RealmPublishers.WillChange<Object> { get }
-
Cria uma instância não gerenciada de um objeto de Realm.
O argumento
value
é utilizado para preencher o objeto. Pode ser um objeto compatível com codificação key-value, uma array ou dicionário retornado dos métodos emNSJSONSerialization
ou umArray
contendo um elemento para cada propriedade gerenciada. Uma exceção será lançada se alguma propriedade obrigatória não estiver presente e essas propriedades não tiverem sido definidas com valores padrão.Ao passar um
Array
como argumentovalue
, todas as propriedades devem estar presentes, válidas e na mesma ordem que as propriedades definidas no modelo.Chame
add(_:)
em uma instânciaRealm
para adicionar um objeto não gerenciado a esse Realm.Declaração
Swift
public convenience init(value: Any)
Parâmetros
value
O valor utilizado para preencher o objeto.
-
O Realm que managed o objeto ou
nil
se o objeto não for gerenciado.Declaração
Swift
public var realm: Realm? { get }
-
O esquema de objetos que lista as propriedade managed do objeto.
Declaração
Swift
public var objectSchema: ObjectSchema { get }
-
Indica se o objeto não pode mais ser acessado porque agora é inválido.
Um objeto não poderá mais ser acessado se o objeto tiver sido excluído do Realm que o managed ou se
invalidate()
for chamado nesse Realm. Esta propriedade é observável por valor-chave.Declaração
Swift
@objc dynamic open override var isInvalidated: Bool { get }
-
Uma descrição legível por humanos do objeto.
Declaração
Swift
open override var description: String { get }
-
Substitua este método para especificar o nome de uma propriedade a ser usada como chave primária.
Somente propriedades dos tipos
String
eInt
podem ser designadas como chave primária. As propriedades da chave primária impõem exclusividade para cada valor sempre que a propriedade é definida, o que incorre em menor sobrecarga. Os índices são criados automaticamente para propriedades de chave primária.Declaração
Swift
@objc open class func primaryKey() -> String?
Valor de retorno
O nome da propriedade designada como chave primária ou
nil
se o modelo não tiver chave primária. -
Substitua este método para especificar os nomes das propriedades a serem ignoradas. Essas propriedade não serão managed pelo Realm que managed o objeto.
Declaração
Swift
@objc open class func ignoredProperties() -> [String]
Valor de retorno
Uma array de nomes de propriedades a serem ignorados.
-
Retorna uma matriz de nomes de propriedades para propriedades que devem ser indexadas.
Somente propriedades de string, inteiro, booleano,
Date
eNSDate
são aceitas.Declaração
Swift
@objc open class func indexedProperties() -> [String]
Valor de retorno
Uma array de nomes de propriedades.
-
Retorna ou define o valor da propriedade com o nome fornecido.
Declaração
Swift
@objc open subscript(key: String) -> Any? { get set }
-
Registra um bloco a ser chamado cada vez que o objeto for alterado.
O bloqueio será chamado de forma assíncrona após cada transação de escrita que exclua o objeto ou modifique qualquer uma das propriedades managed do objeto, incluindo autoatribuições que definem uma propriedade ao seu valor existente.
Para transações de gravação realizadas em diferentes threads ou em processos diferentes, o bloco será chamado quando o Realm de gerenciamento for (auto)atualizado para uma versão que inclua as alterações, enquanto para transações de gravação local, ele será chamado em algum momento no futuro após o a transação de escrita está confirmada.
Se nenhuma fila for fornecida, as notificações serão entregues por meio do loop de eventos padrão e, portanto, não poderão ser entregues enquanto o loop de eventos estiver bloqueado por outra atividade. Se uma fila for fornecida, as notificações serão entregues para essa fila. Quando as notificações não podem ser entregues instantaneamente, várias notificações podem ser agrupadas em uma única notificação.
Ao contrário de
List
eResults
, não há chamada de resposta "inicial" feita após você adicionar um novo bloco de notificação.Somente objeto managed por um Realm podem ser observados dessa forma. Você deve reter o token retornado pelo tempo que desejar que as atualizações sejam enviadas ao bloco. Para parar de receber atualizações, ligue para
invalidate()
no token.É seguro capturar uma forte referência ao objeto observado dentro do bloco de chamada de resposta. Não há ciclo de retenção devido ao fato de que a chamada de resposta é retida pelo token retornado e não pelo próprio objeto.
Aviso
Este método não pode ser chamado durante uma transação de escrita, ou quando o Realm que o contém for somente leitura.Declaração
Swift
public func observe<T: RLMObjectBase>(on queue: DispatchQueue? = nil, _ block: @escaping (ObjectChange<T>) -> Void) -> NotificationToken
Parâmetros
queue
A fila de despacho em série para receber a notificação. Se
nil
, as notificações são entregues ao thread atual.block
O bloco a ser chamado com informações sobre as alterações no objeto.
Valor de retorno
Um token que deve ser mantido pelo tempo que você quiser que as atualizações sejam entregues.
-
Retorna se dois Objeto de Realm são iguais.
O objeto são considerados os mesmos se e somente se forem managed pelo mesmo Realm e ponto para o mesmo objeto subjacente no reconhecimento de data center.
Observação
A comparação de igualdade é implementada por
isEqual(_:)
. Se o tipo de objeto for definido com uma chave primária, oisEqual(_:)
se comportará de forma idêntica a este método. Se o Tipo de objeto de Realm não for definido com uma chave primária,isEqual(_:)
utilizará o comportamentoNSObject
de comparar a identidade do objeto. Esse método pode ser usado para comparar dois objetos para igualdade de banco de dados, independentemente de seu tipo de objeto definir ou não uma chave primária.Declaração
Swift
public func isSameObject(as object: Object?) -> Bool
Parâmetros
object
O objeto com o qual comparar o receptor.
-
Indica se este objeto está congelado.
Veja
Object.freeze()
Declaração
Swift
public var isFrozen: Bool { get }
-
Retorna um snapshot congelado (imutável) deste objeto.
A cópia congelada é um objeto imutável que contém os mesmos dados que este objeto contém atualmente, mas não será atualizado quando forem feitas gravações no Realm que a contém. Ao contrário dos objetos ativos, os objetos congelados podem ser acessados de qualquer thread.
Aviso
Manter um objeto congelado por um longo período enquanto executa a transação de escrita no Realm pode fazer com que o Arquivo de Realm cresça para tamanhos grandes. ConsulteRealm.Configuration.maximumNumberOfActiveVersions
para obter mais informações.Aviso
Este método só pode ser chamado em um managed objeto.Declaração
Swift
public func freeze() -> Self
-
Retorna uma referência ativa (mutável) deste objeto.
Esse método cria um acessador gerenciado para uma cópia ativa do mesmo objeto congelado. Retornará a si mesmo se for chamado em um objeto já ativo.
Declaração
Swift
public func thaw() -> `Self`?