2013-08-21 11 views
6

Ich benutze Magical Record zum Speichern meiner Daten. Diese Daten müssen verschlüsselt werden, weshalb ich versuche, sie mit der SQLCipher-Bibliothek (http://sqlcipher.net/ios-tutorial/) zu kombinieren.iOS Magical Record & SQLCipher

ich bereits Setup SQLCipher und getestet es mit Core Data erfolgreich, EncryptedStore Datei aus diesem Beispiel mit https://github.com/project-imas/encrypted-core-data:

Was ich tat, war nur NSPersistentStoreCoordinator wie folgt geändert:

NSPersistentStoreCoordinator * Koordinator = [EncryptedStore makeStore: [self managedObjectModel]: [SSKeychain passwordForService: myService-Konto: myaccount]];

Also ich denke, ich muss ändern, wie NSPersistentStoreCoordinator in MagicalRecord erstellt wird, aber ich hatte kein Glück damit, so dass jede Hilfe geschätzt werden würde.

Antwort

2

Wenn Sie bereits über einen permanenten Speicherkoordinator verfügen, müssen Sie den Kerndatenstapel manuell einrichten, wenn Sie MagicalRecord verwenden. Ich empfehle etwas in diesen Zeilen:

Sie müssen möglicherweise die Initialisierungsmethode auf eigene Faust verfügbar machen.

Als eine Randnotiz möchten Sie möglicherweise ein Ticket zum MagicalRecord-Problemprotokoll hinzufügen, um der Setup-Methodensammlung eine Methode hinzuzufügen, um Ihren eigenen Koordinator anzugeben, sodass diese Arbeit von MagicalRecord selbst erledigt wird.

+1

Ich löste das Problem selbst schon. Ich ging Schritt für Schritt durch magische Aufzeichnung und in NSPersistentStoreCoordinator + MagicalRecord.m Methode geändert: + (NSPersistentStoreCoordinator *) MR_coordinatorWithSqliteStoreNamed: (NSString *) storeFileName withOptions: (NSDictionary *) Optionen Unterschied: NSPersistentStoreCoordinator * psc = [EncryptedStore makeStore: Modell: @ "temp"]; // NSPersistentStoreCoordinator * PSC = [[NSPersistentStoreCoordinator Alloc] InitWithManagedObjectModel: Modell]; Jetzt arbeitet SQLCipher mit MagicalRecord –

+0

yeah, Sie sollten das wahrscheinlich in einer "öffentlichen API" Art und Weise tun. Wenn Sie die lib mit Ihren benutzerdefinierten Änderungen beibehalten möchten, ist das cool. – casademora

+1

@ user1041311 Können Sie stattdessen eine Antwort mit der genauen Konfiguration hinzufügen, die für Sie funktioniert hat? – Kiran