Область: - Завершение работы приложения из-за необработанного исключения «RLMException»? - PullRequest
3 голосов
/ 09 апреля 2019

Я работаю над проектом (iOS), который основан на Objective-C и Swift. Автономное хранилище используется в Приложении Realm и Realm-Cloud для синхронизации объектов данных между клиентом и сервер.

Когда я получил проект, RealmModels внутри проекта отсутствовали, поэтому я скопировал realmModels из Android Project и создал недостающие модели. После создания моделей проект заявлен для сборки и запуска.

Но теперь возникает проблема, когда база данных области загружается полностью. Но при доступе к объектам данных из базы данных области происходит сбой приложения с исключением.

Terminating app due to uncaught exception 'RLMException', reason: 'Invalid value 'alpha-numeric-string' to initialize object of type 'modelName': missing key 'id''
*** First throw call stack:
(0x1af008518 0x1ae1e39f8 0x1046a0e14 0x1046a02fc 0x10469acd0 0x102999cdc 0x1029993c8 0x102998db8 0x10293a50c 0x10293b508 0x1028fa5a0 0x1aef795bc 0x1aef79588 0x1aef78a7c 0x1aef78728 0x1aeef2524 0x1aef781d8 0x1af960814 0x1029acd90 0x102915320 0x105def6f0 0x105df0c74 0x105dfe6fc 0x1aef99ec0 0x1aef94df8 0x1aef94354 0x1b119479c 0x1db407b68 0x102902638 0x1aea5a8e0)
libc++abi.dylib: terminating with uncaught exception of type NSException

Я добавляю необходимые модели и код для отладки.

RealmModel.h

@interface association : RLMObject
@end

RLM_ARRAY_TYPE(association)

@interface association()
@property NSString *id;
@property BOOL isDeleted;
@property (nullable) NSDate *createTime;
@property (nullable) a *createdBy;
@property (nullable) NSDate *updateTime;
@property (nullable) a *ab;
@property (nullable) b *ac;
@property (nullable) c *cd;
@end

RealmModeals.m

@implementation association

+ (NSArray<NSString *> *)requiredProperties {
    return @[
        @"id",
    ];
}

+ (NSString *)primaryKey {
    return @"id";
}

@end

Realm.swift

import Foundation

typealias Association = association

Association.swift

static func AssociationForCurrentDevice() -> Association {
        var association: Association! = Association(value: DeviceUUID.current.string) . ----> App is crashing in this line with the above mentioned error.

        return Association
    }

Я пытался открыть базу данных RealmDatabase (одну с расширением .realm). Я получаю сообщение об ошибке, что я могу открыть файл, когда мне нужно ввести действительный ключ шифрования для расшифровки файла. (где найти ключ?)

(Прикрепленное изображение). Error While opening Realm Database.

Заранее спасибо. Если требуется дополнительная информация, не стесняйтесь комментировать.

...