2016-08-25 1 views
0

Dies ist meine erste App mit Realm ObjC. Ich habe ein Modell definiert wieGetting SchemaMismatchException

@interface Token : RLMObject 
@property NSInteger identifier; 
@property NSString *refreshToken; 
@property NSString *scope; 
@property NSString *tokenType; 
@property NSString *accessToken; 
@property double expiresIn; 


+ (instancetype)modelObjectWithDictionary:(NSDictionary *)dict; 
- (instancetype)initWithDictionary:(NSDictionary *)dict; 
- (NSDictionary *)dictionaryRepresentation; 
- (BOOL) isExpired; 
@end 

Als ich

RLMRealm *realm = [RLMRealm defaultRealm]; 

betreiben mein Token-Objekt zu speichern, wird eine Ausnahme Haltepunkt an

throw SchemaMismatchException(errors); 
+1

Versuch löschen Sie die App und installieren und sehen, ob das Problem – Tj3n

+0

Thanks @ Tj3n gegangen, es hat funktioniert! –

+0

Es wird nicht vollständig Ihr Problem lösen, das ist nur um zu arbeiten, was Sie tun müssen, ist Bump Ihre Schema-Version – Tj3n

Antwort

1
ausgelöst wird

Sie haben das Problem, weil Sie das ändern Modellklasse (wie Eigenschaft hinzufügen oder löschen), danach müssen Sie entweder:

  • die App löschen und neu installieren, werden die Menschen betreffen, die bereits die App

  • Ihre Realm Schema Version Bump installiert und/oder Migration tun, wenn nötig, wie in Realm's document, Defining Migrations beschrieben, im Grunde, fügen Sie diese in Ihre AppDelegate oder wo Sie Realm Config erstellen:

    RLMRealmConfiguration *config = [RLMRealmConfiguration defaultConfiguration]; 
    config.schemaVersion = 1; 
    [RLMRealmConfiguration setDefaultConfiguration:config];