HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – SQLCipher和CoreData问题:CoreData无法完成故障大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个sqlCipher数据库加密和CoreData的问题:
当我使用持久性存储协调器与sqlCipher,它总是崩溃与故障一对多的关系,在第一个应用程序重新启动后.
所以当我第一次启动应用程序时,我创建了具有关系的NsmanagedObjects,然后,当我保存db并重新打开应用程序时,当我尝试访问这些关系时,它会崩溃.
没有sqlCipher@R_417_6944@.

以下是sqlCipher持久存储初始化的代码

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
    if (!_persistentStoreCoordinator) {
        NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"MyApp.sqlite"];
        NSDictionary *options = @{EncryptedStorePassphraseKey: @"MyApp",EncryptedStoreDatabaseLOCATIOn: storeURL};
        NSError *error;
        _persistentStoreCoordinator = [EncryptedStore makeStoreWithOptions:options managedObjectModel:[self managedObjectModel] error:&error];
        if (error) {
            NSLog(@"%@",error);
        }
    }

    return _persistentStoreCoordinator;
}

我创建NsmanagedObject的代码

- (id)createObjectWithClassName:(NSString *)name
{
    NsmanagedObject *object = [[NSClassFromString(Name) alloc] initWithEntity:[NSEntityDescription entityForName:name inManagedObjectContext:self.context] inserTintoManagedObjectContext:self.context];
    return object;
}

解决方法

最后我自己找到答案.

我调查不同的情况,并认为,这个问题只发生在我的数据模型中.

问题是我在NsmanagedObject类中有一个名称为“index”的属性.

看来sqlCipher在内部使用这样的属性,并且与它冲突.一旦我把它重新命名为另一个名字,一切正常!

大佬总结

以上是大佬教程为你收集整理的ios – SQLCipher和CoreData问题:CoreData无法完成故障全部内容,希望文章能够帮你解决ios – SQLCipher和CoreData问题:CoreData无法完成故障所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。