2013-08-21 33 views
6

Tôi đang sử dụng Bản ghi Magical để lưu dữ liệu của mình. Dữ liệu này cần mã hóa, vì vậy tôi cố gắng kết hợp nó với thư viện SQLCipher (http://sqlcipher.net/ios-tutorial/).iOS Magical Record & SQLCipher

tôi đã thiết lập SQLCipher và thử nghiệm nó với Core Data thành công, sử dụng tập tin EncryptedStore từ ví dụ này https://github.com/project-imas/encrypted-core-data:

Những gì tôi đã làm là chỉ thay đổi NSPersistentStoreCoordinator như thế này:

NSPersistentStoreCoordinator * phối = [EncryptedStore makeStore: [self managedObjectModel]: [SSKeychain passwordForService: tài khoản myservice: myaccount]];

Vì vậy, tôi nghĩ rằng tôi cần phải thay đổi cách NSPersistentStoreCoordinator được tạo ra trong MagicalRecord, nhưng tôi không có may mắn với nó, vì vậy bất kỳ trợ giúp sẽ được đánh giá cao.

Trả lời

2

Nếu bạn đã có một điều phối viên lưu trữ liên tục, bạn sẽ phải thiết lập ngăn xếp dữ liệu lõi theo cách thủ công khi sử dụng MagicalRecord. Tôi khuyên bạn nên làm điều gì đó dọc theo các dòng sau:

NSPersistentStoreCoordinator *coordinator = //how ever you do it; 
[NSPersistentStoreCoordinator MR_setDefaultCoordinator:coordinator]; 
[NSManagedObjectContext MR_initializeDefaultContextWithCoordinator:coordinator]; 

Bạn có thể cần tự mình vạch trần phương pháp khởi tạo.

Như một lưu ý phụ, bạn có thể muốn thêm vé vào các vấn đề của MagicalRecord để thêm một phương thức vào bộ sưu tập phương pháp thiết lập để chỉ định điều phối viên của riêng bạn để công việc này được chính MagicalRecord chăm sóc.

+1

Tôi đã tự khắc phục sự cố. Tôi đi từng bước qua Magical Ghi lại và thay đổi trong phương pháp NSPersistentStoreCoordinator + MagicalRecord.m: + (NSPersistentStoreCoordinator *) MR_coordinatorWithSqliteStoreNamed: (NSString *) withOptions storeFileName: (NSDictionary *) tùy chọn khác biệt: NSPersistentStoreCoordinator * psc = [EncryptedStore makeStore: mô hình: @ "temp"]; // NSPersistentStoreCoordinator * psc = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel: model]; Bây giờ SQLCipher hoạt động với MagicalRecord –

+0

vâng, bạn có lẽ nên làm điều đó theo cách thức "công khai api". Nếu bạn đang làm mát với việc duy trì lib với các thay đổi tùy chỉnh của bạn, đó là mát mẻ. – casademora

+1

@ user1041311 Bạn có thể thêm câu trả lời thay vì thiết lập chính xác phù hợp với mình không? – Kiran