Objeto RLM
Objective-C
@interface RLMObject : RLMObjectBase <RLMThreadConfined>
Swift
@_nonSendable(_assumed) class RLMObject : RLMObjectBase, RLMThreadConfined
RLMObject
é uma classe base para objetos de modelo que representam dados armazenados no Realms.
Defina suas classes de modelo subclassificando RLMObject
e adicionando propriedade a serem managed. Em seguida, instancie e use suas subclasses personalizadas em vez de usar a classe RLMObject
diretamente.
// Dog.h
@interface Dog : RLMObject
@property NSString *name;
@property BOOL adopted;
@end
// Dog.m
@implementation Dog
@end //none needed
Tipos de propriedade suportados
NSString
NSInteger
,int
,long
,float
edouble
BOOL
oubool
NSDate
NSData
NSNumber<X>
, ondeX
é um deRLMInt
,RLMFloat
,RLMDouble
ouRLMBool
, para propriedades de número opcionaisRLMObject
subclasses, para modelar relacionamentos de muitos para um.RLMArray<X>
, ondeX
é uma subclasseRLMObject
, para modelar relacionamentos muitos-para-muitos.
Consultando
Você pode iniciar query diretamente por meio dos métodos de classe: allObjects
, objectsWhere:
e objectsWithPredicate:
. Esses métodos permitem que você faça uma query facilmente em uma subclasse personalizada para instâncias dessa classe no Realm padrão.
Para pesquisar em um Realm diferente do Realm padrão, use os métodos de classe allObjectsInRealm:
, objectsInRealm:where:
e objectsInRealm:withPredicate:
.
Veja
RLMRealm
Relacionamentos
Consulte nossa documentação do Realm Swift para obter mais detalhes.
Observação de valor-chave
Todas as propriedades RLMObject
(incluindo as propriedades que você cria em subclasses) são compatíveis com a Observação de Valores-chave, exceto realm
e objectSchema
.
Tenha em mente as seguintes dicas ao observar Objeto de Realm:
- Ao contrário das propriedades
NSMutableArray
, as propriedadesRLMArray
não exigem o uso do objeto proxy retornado de-mutableArrayValueForKey:
ou a definição de métodos de mutação KVC na classe que a contém. Você pode simplesmente chamar métodos diretamente noRLMArray
; qualquer alteração será automaticamente observada pelo objeto que a contém. - Instâncias
RLMObject
não gerenciadas não podem ser adicionadas a um Realm enquanto tiverem quaisquer propriedades observadas. - A modificação de s gerenciados
RLMObject
dentro-observeValueForKeyPath:ofObject:change:context:
não é recomendada. As propriedades podem mudar mesmo quando o Realm não está em uma transação de escrita (por exemplo, quando-[RLMRealm refresh]
é chamado depois que as alterações são feitas em um thread diferente) e as notificações são enviadas antes da alteração ser aplicada (quandoNSKeyValueObservingOptionPrior
é usado) pode ser enviado em momentos em que você não pode iniciar uma transação por escrito.
-
Cria uma instância não gerenciada de um objeto de Realm.
Chame
addObject:
em uma instânciaRLMRealm
para adicionar um objeto não gerenciado a esse Realm.Veja
[RLMRealm addObject:]
Declaração
Objective-C
- (nonnull instancetype)init;
Swift
init()
-
Cria uma instância não gerenciada de um objeto de Realm.
Passe em uma instância
NSArray
ouNSDictionary
para definir os valores das propriedades do objeto.Chame
addObject:
em uma instânciaRLMRealm
para adicionar um objeto não gerenciado a esse Realm.Veja
[RLMRealm addObject:]
Declaração
Objective-C
- (nonnull instancetype)initWithValue:(nonnull id)value;
Swift
convenience init(value: Any)
-
Retorna o nome da classe para uma subclasse de Objeto de Realm.
Aviso
Não substitua. O Realm depende deste método retornando o nome exato da classe.
Declaração
Objective-C
+ (nonnull NSString *)className;
Swift
class func className() -> String
Valor de retorno
O nome da classe de modelo.
-
Cria uma instância de um Objeto de Realm com um determinado valor e o adiciona ao Realm padrão.
Se objetos aninhados forem incluídos no argumento,
createInDefaultRealmWithValue:
será chamado recursivamente sobre eles.O argumento
value
pode ser um objeto compatível com codificação de valor-chave, uma array ou dicionário retornado dos métodos emNSJSONSerialization
ou uma array contendo um elemento para cada managed propriedade.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.
Se o argumento
value
for uma array, todas as propriedades deverão estar presentes, válidas e na mesma ordem que as propriedades definidas no modelo.Veja
defaultPropertyValues
Declaração
Objective-C
+ (nonnull instancetype)createInDefaultRealmWithValue:(nonnull id)value;
Swift
class func createInDefaultRealm(withValue value: Any) -> Self
Parâmetros
value
O valor utilizado para preencher o objeto.
-
Cria uma instância de um Objeto de Realm com um determinado valor e o adiciona ao Realm especificado.
Se objetos aninhados forem incluídos no argumento,
createInRealm:withValue:
será chamado recursivamente sobre eles.O argumento
value
pode ser um objeto compatível com codificação de valor-chave, uma array ou dicionário retornado dos métodos emNSJSONSerialization
ou uma array contendo um elemento para cada managed propriedade.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.
Se o argumento
value
for uma array, todas as propriedades deverão estar presentes, válidas e na mesma ordem que as propriedades definidas no modelo.Veja
defaultPropertyValues
Declaração
Objective-C
+ (nonnull instancetype)createInRealm:(nonnull RLMRealm *)realm withValue:(nonnull id)value;
Swift
class func create(in realm: RLMRealm, withValue value: Any) -> Self
Parâmetros
realm
O Realm que deve managed o objeto recém-criado.
value
O valor utilizado para preencher o objeto.
-
Cria ou atualiza um Objeto de Realm dentro do Realm padrão.
Este método só pode ser chamado em Tipo de objeto de Realm com uma chave primária definida. Se já houver um objeto com o mesmo valor de chave primária no Realm padrão, seus valores serão atualizados e o objeto será retornado. Caso contrário, este método cria e preenche uma nova instância do objeto no Realm padrão.
Se objetos aninhados forem incluídos no argumento,
createOrUpdateInDefaultRealmWithValue:
será recursivamente chamado neles se tiverem chaves primárias,createInDefaultRealmWithValue:
se não tiverem.O argumento
value
é utilizado para preencher o objeto. Pode ser um Objeto de Realm, um objeto compatível com codificação de valor-chave, uma matriz ou dicionário retornado dos métodos emNSJSONSerialization
ou uma matriz contendo um elemento para cada propriedade managed.Se o objeto estiver sendo criado, uma exceção será lançada se alguma propriedade necessária não estiver presente e essas propriedades não tiverem sido definidas com valores padrão.
Se o argumento
value
for um objeto de Realm já gerenciado pelo Realm padrão, o tipo do argumento for o mesmo do receptor e os objetos tiverem valores idênticos para suas propriedades gerenciadas, esse método não fará nada.Se o objeto estiver sendo atualizado, cada propriedade definida em seu esquema será definida copiando do
value
usando codificação de valor-chave. Se o argumentovalue
não responder avalueForKey:
para um determinado nome de propriedade (ou nome de getter, se definido), esse valor permanecerá intocado. As propriedades anuláveis no objeto podem ser definidas como nulas usandoNSNull
como o valor atualizado. Cada propriedade é definida mesmo que o valor existente seja igual ao novo valor que está sendo definido, e as notificações relatarão que todas foram alteradas. ConsultecreateOrUpdateModifiedInDefaultRealmWithValue:
para obter uma versão desta função que define apenas os valores que foram alterados.Se o argumento
value
for uma array, todas as propriedades deverão estar presentes, válidas e na mesma ordem que as propriedades definidas no modelo.Veja
defaultPropertyValues
,primaryKey
Declaração
Objective-C
+ (nonnull instancetype)createOrUpdateInDefaultRealmWithValue:(nonnull id)value;
Swift
class func createOrUpdateInDefaultRealm(withValue value: Any) -> Self
Parâmetros
value
O valor utilizado para preencher o objeto.
-
Cria ou atualiza um Objeto de Realm dentro do Realm padrão.
Este método só pode ser chamado em Tipo de objeto de Realm com uma chave primária definida. Se já houver um objeto com o mesmo valor de chave primária no Realm padrão, seus valores serão atualizados e o objeto será retornado. Caso contrário, este método cria e preenche uma nova instância do objeto no Realm padrão.
Se objetos aninhados forem incluídos no argumento,
createOrUpdateModifiedInDefaultRealmWithValue:
será recursivamente chamado neles se tiverem chaves primárias,createInDefaultRealmWithValue:
se não tiverem.O argumento
value
é utilizado para preencher o objeto. Pode ser um Objeto de Realm, um objeto compatível com codificação de valor-chave, uma matriz ou dicionário retornado dos métodos emNSJSONSerialization
ou uma matriz contendo um elemento para cada propriedade managed.Se o objeto estiver sendo criado, uma exceção será lançada se alguma propriedade necessária não estiver presente e essas propriedades não tiverem sido definidas com valores padrão.
Se o argumento
value
for um objeto de Realm já gerenciado pelo Realm padrão, o tipo do argumento for o mesmo do receptor e os objetos tiverem valores idênticos para suas propriedades gerenciadas, esse método não fará nada.Se o objeto estiver sendo atualizado, cada propriedade definida em seu esquema será definida copiando do
value
usando codificação de valor-chave. Se o argumentovalue
não responder avalueForKey:
para um determinado nome de propriedade (ou nome de getter, se definido), esse valor permanecerá intocado. As propriedades anuláveis no objeto podem ser definidas como nulas usandoNSNull
como o valor atualizado. Ao contráriocreateOrUpdateInDefaultRealmWithValue:
, somente as propriedades que tiveram valor alterado são definidas, e quaisquer notificações de alteração produzidas por essa chamada informarão apenas quais propriedades foram realmente alteradas.A verificação de quais propriedades foram alteradas impõe uma pequena quantidade de sobrecarga e, portanto, esse método pode ser mais lento quando todas ou quase todas as propriedades que estão sendo definidas tiverem sido alteradas. Se a maioria ou todas as propriedades que estão sendo definidas não tiverem sido alteradas, esse método será muito mais rápido do que defini-las condicionalmente todas elas, e também reduzirá a quantidade de dados que devem ser gravados no Realm, economizando tempo de e/s e espaço em disco .
Se o argumento
value
for uma array, todas as propriedades deverão estar presentes, válidas e na mesma ordem que as propriedades definidas no modelo.Veja
defaultPropertyValues
,primaryKey
Declaração
Objective-C
+ (nonnull instancetype)createOrUpdateModifiedInDefaultRealmWithValue: (nonnull id)value;
Swift
class func createOrUpdateModifiedInDefaultRealm(withValue value: Any) -> Self
Parâmetros
value
O valor utilizado para preencher o objeto.
-
Cria ou atualiza um Objeto de Realm dentro de um Realm especificado.
Este método só pode ser chamado em Tipo de objeto de Realm com uma chave primária definida. Se já houver um objeto com o mesmo valor de chave primária no Realm fornecido, seus valores serão atualizados e o objeto será retornado. Caso contrário, este método cria e preenche uma nova instância deste objeto no Realm fornecido.
Se objetos aninhados forem incluídos no argumento,
createOrUpdateInRealm:withValue:
será recursivamente chamado neles se tiverem chaves primárias,createInRealm:withValue:
se não tiverem.O argumento
value
é utilizado para preencher o objeto. Pode ser um Objeto de Realm, um objeto compatível com codificação de valor-chave, uma matriz ou dicionário retornado dos métodos emNSJSONSerialization
ou uma matriz contendo um elemento para cada propriedade managed.Se o objeto estiver sendo criado, uma exceção será lançada se alguma propriedade necessária não estiver presente e essas propriedades não tiverem sido definidas com valores padrão.
Se o argumento
value
for um Objeto de Realm já managed pelo Realm fornecido, o tipo do argumento for o mesmo que o receptor e os objeto tiverem valores idênticos para suas propriedade managed, este método não fará nada.Se o objeto estiver sendo atualizado, cada propriedade definida em seu esquema será definida copiando do
value
usando codificação de valor-chave. Se o argumentovalue
não responder avalueForKey:
para um determinado nome de propriedade (ou nome de getter, se definido), esse valor permanecerá intocado. As propriedades anuláveis no objeto podem ser definidas como nulas usandoNSNull
como o valor atualizado. Cada propriedade é definida mesmo que o valor existente seja igual ao novo valor que está sendo definido, e as notificações relatarão que todas foram alteradas. ConsultecreateOrUpdateModifiedInRealm:withValue:
para obter uma versão desta função que define apenas os valores que foram alterados.Se o argumento
value
for uma array, todas as propriedades deverão estar presentes, válidas e na mesma ordem que as propriedades definidas no modelo.Veja
defaultPropertyValues
,primaryKey
Declaração
Objective-C
+ (nonnull instancetype)createOrUpdateInRealm:(nonnull RLMRealm *)realm withValue:(nonnull id)value;
Swift
class func createOrUpdate(in realm: RLMRealm, withValue value: Any) -> Self
Parâmetros
realm
O Realm que deve possuir o objeto.
value
O valor utilizado para preencher o objeto.
-
Cria ou atualiza um Objeto de Realm dentro de um Realm especificado.
Este método só pode ser chamado em Tipo de objeto de Realm com uma chave primária definida. Se já houver um objeto com o mesmo valor de chave primária no Realm fornecido, seus valores serão atualizados e o objeto será retornado. Caso contrário, este método cria e preenche uma nova instância deste objeto no Realm fornecido.
Se objetos aninhados forem incluídos no argumento,
createOrUpdateInRealm:withValue:
será recursivamente chamado neles se tiverem chaves primárias,createInRealm:withValue:
se não tiverem.O argumento
value
é utilizado para preencher o objeto. Pode ser um Objeto de Realm, um objeto compatível com codificação de valor-chave, uma matriz ou dicionário retornado dos métodos emNSJSONSerialization
ou uma matriz contendo um elemento para cada propriedade managed.Se o objeto estiver sendo criado, uma exceção será lançada se alguma propriedade necessária não estiver presente e essas propriedades não tiverem sido definidas com valores padrão.
Se o argumento
value
for um Objeto de Realm já managed pelo Realm fornecido, o tipo do argumento for o mesmo que o receptor e os objeto tiverem valores idênticos para suas propriedade managed, este método não fará nada.Se o objeto estiver sendo atualizado, cada propriedade definida em seu esquema será definida copiando do
value
usando codificação de valor-chave. Se o argumentovalue
não responder avalueForKey:
para um determinado nome de propriedade (ou nome de getter, se definido), esse valor permanecerá intocado. As propriedades anuláveis no objeto podem ser definidas como nulas usandoNSNull
como o valor atualizado. Ao contráriocreateOrUpdateInRealm:withValue:
, somente as propriedades que tiveram valor alterado são definidas, e quaisquer notificações de alteração produzidas por essa chamada informarão apenas quais propriedades foram realmente alteradas.A verificação de quais propriedades foram alteradas impõe uma pequena quantidade de sobrecarga e, portanto, esse método pode ser mais lento quando todas ou quase todas as propriedades que estão sendo definidas tiverem sido alteradas. Se a maioria ou todas as propriedades que estão sendo definidas não tiverem sido alteradas, esse método será muito mais rápido do que defini-las condicionalmente todas elas, e também reduzirá a quantidade de dados que devem ser gravados no Realm, economizando tempo de e/s e espaço em disco .
Se o argumento
value
for uma array, todas as propriedades deverão estar presentes, válidas e na mesma ordem que as propriedades definidas no modelo.Veja
defaultPropertyValues
,primaryKey
Declaração
Objective-C
+ (nonnull instancetype)createOrUpdateModifiedInRealm:(nonnull RLMRealm *)realm withValue:(nonnull id)value;
Swift
class func createOrUpdateModified(in realm: RLMRealm, withValue value: Any) -> Self
Parâmetros
realm
O Realm que deve possuir o objeto.
value
O valor utilizado para preencher o objeto.
-
O esquema de objetos que lista as propriedade managed do objeto.
Declaração
Objective-C
@property (nonatomic, readonly) RLMObjectSchema *_Nonnull objectSchema;
Swift
var objectSchema: RLMObjectSchema { 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 managed ou se
invalidate
for chamado nesse Realm.Declaração
Objective-C
@property (nonatomic, readonly, getter=isInvalidated) BOOL invalidated;
Swift
var isInvalidated: Bool { get }
-
Indica se este objeto está congelado.
Veja
-[RLMObject freeze]
Declaração
Objective-C
@property (nonatomic, readonly, getter=isFrozen) BOOL frozen;
Swift
var isFrozen: Bool { get }
-
Retorna uma matriz de nomes de propriedades para propriedades que devem ser indexadas.
Somente propriedades de string, inteiros, booleanos e
NSDate
são aceitas.Declaração
Objective-C
+ (nonnull NSArray<NSString *> *)indexedProperties;
Swift
class func indexedProperties() -> [String]
Valor de retorno
Uma array de nomes de propriedades.
-
Substitua este método para especificar os valores padrão a serem utilizados para cada propriedade.
Declaração
Objective-C
+ (nullable NSDictionary *)defaultPropertyValues;
Swift
class func defaultPropertyValues() -> [AnyHashable : Any]?
Valor de retorno
Uma propriedade de mapeamento de dicionário nomeia para seus valores padrão.
-
Substitua este método para especificar o nome de uma propriedade a ser usada como chave primária.
Somente propriedades dos tipos
RLMPropertyTypeString
eRLMPropertyTypeInt
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
Objective-C
+ (nullable NSString *)primaryKey;
Swift
class func primaryKey() -> String?
Valor de retorno
O nome da propriedade designada como 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
Objective-C
+ (nullable NSArray<NSString *> *)ignoredProperties;
Swift
class func ignoredProperties() -> [String]?
Valor de retorno
Uma array de nomes de propriedades a serem ignorados.
-
Substitua este método para especificar os nomes das propriedades que não são opcionais (ou seja, não pode ser atribuído a um valor
nil
).Por padrão, todas as propriedades de um tipo cujos valores podem ser definidos para
nil
são consideradas propriedades opcionais. Para exigir que um objeto em um Realm sempre armazene um valor nãonil
para uma propriedade, adicione o nome da propriedade à array retornada por esse método.As propriedades do tipo
RLMObject
não podem ser não opcionais. As propriedades de matriz eNSNumber
podem ser não opcionais, mas não há razão para isso: as matrizes não suportam o armazenamento de nil e, se você quiser um número não opcional, deve usar o tipo primitivo .Declaração
Objective-C
+ (nonnull NSArray<NSString *> *)requiredProperties;
Swift
class func requiredProperties() -> [String]
Valor de retorno
Uma array de nomes de propriedades que são necessários.
-
Substitua este método para fornecer informações relacionadas a propriedades que contêm objetos de vinculação.
Cada propriedade do tipo
RLMLinkingObjects
deve ter uma chave no dicionário retornado por este método que consiste no nome da propriedade. O valor correspondente deve ser uma instância deRLMPropertyDescriptor
que descreve a classe e a propriedade à qual a propriedade está vinculada.return @{ @"owners": [RLMPropertyDescriptor descriptorWithClass:Owner.class propertyName:@"dogs"] };
Declaração
Objective-C
+ (nonnull NSDictionary<NSString *, RLMPropertyDescriptor *> *) linkingObjectsProperties;
Swift
class func linkingObjectsProperties() -> [String : RLMPropertyDescriptor]
Valor de retorno
Uma propriedade de mapeamento de dicionário nomeia para instâncias de
RLMPropertyDescriptor
.
-
Retorna todos os objeto desse Tipo de objeto de Realm do Realm padrão.
Declaração
Objective-C
+ (nonnull RLMResults *)allObjects;
Swift
class func allObjects() -> RLMResults
Valor de retorno
Um
RLMResults
contendo todos os objetos desse tipo no Realm padrão. -
Retorna todos os objeto desse Tipo de objeto de Realm que correspondem ao predicado fornecido do Realm padrão.
Declaração
Objective-C
+ (nonnull RLMResults *)objectsWhere:(nonnull NSString *)predicateFormat, ...;
Parâmetros
predicateFormat
Uma string de formato de predicado, opcionalmente seguida por um número variável de argumentos.
Valor de retorno
Um
RLMResults
contendo todos os objetos desse tipo no Realm padrão que correspondem ao predicado fornecido. -
Retorna todos os objeto desse Tipo de objeto de Realm que correspondem ao predicado fornecido do Realm padrão.
Declaração
Objective-C
+ (nonnull RLMResults *)objectsWithPredicate:(nullable NSPredicate *)predicate;
Swift
class func objects(with predicate: NSPredicate?) -> RLMResults
Parâmetros
predicate
O predicado com o qual filtrar os objetos.
Valor de retorno
Um
RLMResults
contendo todos os objetos desse tipo no Realm padrão que correspondem ao predicado fornecido. -
Recupera a instância única deste tipo de objeto com a chave primária fornecida do Realm padrão.
Retorna o objeto do Realm padrão que tem a chave primária fornecida ou
nil
se o objeto não existe. Isso é um pouco mais rápido do que o equivalente[[SubclassName objectsWhere:@"primaryKeyPropertyName = %@", key] firstObject]
.Este método requer que
primaryKey
seja substituído na subclasse de destino.Veja
-primaryKey
Declaração
Objective-C
+ (nullable instancetype)objectForPrimaryKey:(nullable id)primaryKey;
Swift
class func object(forPrimaryKey primaryKey: Any?) -> Self?
Valor de retorno
Um objeto deste Tipo de objeto de Realm, ou
nil
se um objeto com a chave primária fornecida não existir.
-
Retorna todos os objeto desse Tipo de objeto de Realm do Realm especificado.
Declaração
Objective-C
+ (nonnull RLMResults *)allObjectsInRealm:(nonnull RLMRealm *)realm;
Swift
class func allObjects(in realm: RLMRealm) -> RLMResults
Parâmetros
realm
O Realm a ser query.
Valor de retorno
Um
RLMResults
contendo todos os objetos desse tipo no Realm especificado. -
Retorna todos os objeto desse Tipo de objeto de Realm que correspondem ao predicado fornecido do Realm especificado.
Declaração
Objective-C
+ (nonnull RLMResults *)objectsInRealm:(nonnull RLMRealm *)realm where:(nonnull NSString *)predicateFormat, ...;
Parâmetros
predicateFormat
Uma string de formato de predicado, opcionalmente seguida por um número variável de argumentos.
realm
O Realm a ser query.
Valor de retorno
Um
RLMResults
contendo todos os objetos desse tipo no Realm especificado que correspondem ao predicado fornecido. -
Retorna todos os objeto desse Tipo de objeto de Realm que correspondem ao predicado fornecido do Realm especificado.
Declaração
Objective-C
+ (nonnull RLMResults *)objectsInRealm:(nonnull RLMRealm *)realm withPredicate:(nullable NSPredicate *)predicate;
Swift
class func objects(in realm: RLMRealm, with predicate: NSPredicate?) -> RLMResults
Parâmetros
predicate
Um predicado a ser usado para filtrar os elementos.
realm
O Realm a ser query.
Valor de retorno
Um
RLMResults
contendo todos os objetos desse tipo no Realm especificado que correspondem ao predicado fornecido. -
Recupera a instância única deste Tipo de objeto de Realm com a chave primária fornecida do Realm especificado.
Retorna o objeto do Realm especificado que tem a chave primária fornecida ou
nil
se o objeto não existe. Isso é um pouco mais rápido do que o equivalente[[SubclassName objectsInRealm:realm where:@"primaryKeyPropertyName = %@", key] firstObject]
.Este método requer que
primaryKey
seja substituído na subclasse de destino.Veja
-primaryKey
Declaração
Objective-C
+ (nullable instancetype)objectInRealm:(nonnull RLMRealm *)realm forPrimaryKey:(nullable id)primaryKey;
Swift
class func object(in realm: RLMRealm, forPrimaryKey primaryKey: Any?) -> Self?
Valor de retorno
Um objeto deste Tipo de objeto de Realm, ou
nil
se um objeto com a chave primária fornecida não existir.
-
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.
As notificações são entregues por meio do loop de eventos padrão e, portanto, não podem ser entregues enquanto o loop de eventos estiver bloqueado por outra atividade. 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
RLMArray
eRLMResults
, 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, quando o Realm que o contém é somente para leitura ou em um objeto não gerenciado.
Declaração
Objective-C
- (nonnull RLMNotificationToken *)addNotificationBlock: (nonnull RLMObjectChangeBlock)block;
Swift
func addNotificationBlock(_ block: @escaping RLMObjectChangeBlock) -> RLMNotificationToken
Parâmetros
block
O bloco a ser chamado sempre que ocorre uma alteração.
Valor de retorno
Um token que deve ser mantido pelo tempo que você quiser que as atualizações sejam entregues.
-
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.
As notificações são entregues na fila fornecida. Se a fila estiver bloqueada e as notificações não puderem ser entregues instantaneamente, várias notificações poderão ser agrupadas em uma única notificação.
Ao contrário de
RLMArray
eRLMResults
, 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, quando o Realm que o contém é somente para leitura ou em um objeto não gerenciado.Aviso
A fila deve ser uma fila serial.
Declaração
Objective-C
- (nonnull RLMNotificationToken *) addNotificationBlock:(nonnull RLMObjectChangeBlock)block queue:(nonnull dispatch_queue_t)queue;
Swift
func addNotificationBlock(_ block: @escaping RLMObjectChangeBlock, queue: dispatch_queue_t) -> RLMNotificationToken
Parâmetros
block
O bloco a ser chamado sempre que ocorre uma alteração.
queue
A fila em série para a qual entregar notificações.
Valor de retorno
Um token que deve ser mantido pelo tempo que você quiser que as atualizações sejam entregues.
-
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.
As notificações são entregues na fila fornecida. Se a fila estiver bloqueada e as notificações não puderem ser entregues instantaneamente, várias notificações poderão ser agrupadas em uma única notificação.
Ao contrário de
RLMArray
eRLMResults
, 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, quando o Realm que o contém é somente para leitura ou em um objeto não gerenciado.Aviso
A fila deve ser uma fila serial.
Declaração
Objective-C
- (nonnull RLMNotificationToken *) addNotificationBlock:(nonnull RLMObjectChangeBlock)block keyPaths:(nonnull NSArray<NSString *> *)keyPaths queue:(nonnull dispatch_queue_t)queue;
Swift
func addNotificationBlock(_ block: @escaping RLMObjectChangeBlock, keyPaths: [String], queue: dispatch_queue_t) -> RLMNotificationToken
Parâmetros
block
O bloco a ser chamado sempre que ocorre uma alteração.
keyPaths
O bloco será chamado para alterações que ocorrem nesses keypaths. Se nenhum caminho de chave for fornecido, notificações serão entregues para cada caminho de chave de propriedade.
queue
A fila em série para a qual entregar notificações.
Valor de retorno
Um token que deve ser mantido pelo tempo que você quiser que as atualizações sejam entregues.
-
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.
As notificações são entregues na fila fornecida. Se a fila estiver bloqueada e as notificações não puderem ser entregues instantaneamente, várias notificações poderão ser agrupadas em uma única notificação.
Ao contrário de
RLMArray
eRLMResults
, 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, quando o Realm que o contém é somente para leitura ou em um objeto não gerenciado.Aviso
A fila deve ser uma fila serial.
Declaração
Objective-C
- (nonnull RLMNotificationToken *) addNotificationBlock:(nonnull RLMObjectChangeBlock)block keyPaths:(nonnull NSArray<NSString *> *)keyPaths;
Swift
func addNotificationBlock(_ block: @escaping RLMObjectChangeBlock, keyPaths: [String]) -> RLMNotificationToken
Parâmetros
block
O bloco a ser chamado sempre que ocorre uma alteração.
keyPaths
O bloco será chamado para alterações que ocorrem nesses keypaths. Se nenhum caminho de chave for fornecido, notificações serão entregues para cada caminho de chave de propriedade.
Valor de retorno
Um token que deve ser mantido pelo tempo que você quiser que as atualizações sejam entregues.
-
Retorna YES se outra instância de Objeto de Realm ponto para o mesmo objeto que o receptor no Realm que gerencia o receptor.
Para objeto congelados e Tipo de objeto de Realm com uma chave primária,
isEqual:
é substituído para usar a mesma lógica que este método (junto com uma implementação correspondente parahash
). Objeto não congelados sem chave primária usam a identidade de ponteiro paraisEqual:
ehash
.Declaração
Objective-C
- (BOOL)isEqualToObject:(nonnull RLMObject *)object;
Swift
func isEqual(to object: RLMObject) -> Bool
Parâmetros
object
O objeto com o qual comparar o receptor.
Valor de retorno
Se o objeto representa o mesmo objeto que o receptor.
-
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
Objective-C
- (nonnull instancetype)freeze;
Swift
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
Objective-C
- (nonnull instancetype)thaw;
Swift
func thaw() -> Self