- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我对 SQLCipher 数据库加密和 CoreData 有疑问:当我将持久存储协调器与 SQLCipher 一起使用时,它总是在第一次应用程序重新启动后因一对多关系故障而崩溃。因此,当我第一次启动该应用程序时,我创建了具有关系的 NSManagedObjects,然后,当我保存数据库并重新打开该应用程序时,当我尝试访问这些关系时它崩溃了。没有 SQLCipher 一切正常。
这是 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 could not fulfill a fault for,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27312344/
这是我的错误... Thread 1: EXC_BAD_ACCESS (code=1, address=0x18) 这是我的产品请求代表... class ProductRequestDelegate
谁能解释一下这些函数是什么意思? setDate = agent.parameters.date.split('T')[0]; setTime = agent.parameters.time.spli
我正在使用 Dialogflow 开发一个聊天机器人,想验证某人的年龄。简要介绍一下背景:我正在创建一个聊天机器人来识别护理需求,例如住宅或痴呆症护理。在最初的查询中,我希望能够通过在 Dialogf
我正在使用名为 IonSound.js 的声音播放器,可以在此处找到它。 http://ionden.com/a/plugins/ion.sound/en.html 根据文档,我可以像这样监听 sou
我想在我的履行代码中获取参数的原始输入。 我尝试过: var time = agent.parameters.time.original 但结果未定义。 我已经尝试过: var query = age
我设置了一个返回 Promise 的函数.我想在 PromiseKit 的 when(fulfilled:) 中使用这个函数功能,但每当我尝试这样做时,我都会收到错误消息。这是返回 Promise 的
我正在使用 dialogflow 和 google assistant 创建一个语音机器人。我的客户提供了他的网络访问权限,这不是私有(private) URL,而是 IP。它也没有通过 SSL 认证
我是 dialogflow 实现的新手,我正在尝试根据用户问题从新闻 API 中检索新闻。我遵循了新闻 API 提供的文档,但我无法从搜索结果中捕捉到任何响应,当我在控制台中运行该函数时,它不是错误。
我们偶尔会收到“CoreData 无法完成故障”的信息。我们已阅读 Apple 文档,但不清楚允许保留哪些内容。我们非常小心地为每个线程创建一个上下文等。但是,我们的应用程序正在做的一件事是我们在 U
我一直在尝试 DialogFlow 和 Fulfillment,但直到现在我总是将 FulfillmentText 从我的 webhook 返回到我的机器人,如下所示: response = {
async function pending() { return new Promise((resolve, reject) => { resolve(1) }); } async functi
我有一个联系人应用程序,我创建了一个行动项目,最终根据用户对话决定要调用的电话号码。要调用的号码正在 后端(使用 Webhook 实现) 决定。 我想开始调用后端确定的号码(就像你在 Google 智
我在很多测试中都使用了 XCTestExpectation,有时(非常随机地)一些期望没有实现(尽管我确信它们应该是)。 在调查这个问题时,我注意到一些期望在主线程中实现,而一些在后台线程中实现。到目
这是我正在使用的导致问题的代码行: [self.managedObjectContext deleteObject:object]; 然后当它保存上下文时,它会导致崩溃: Terminating ap
(相关但不完全相同:JS Promises: Fulfill vs Resolve) 我一直在努力思考 Javascript promises,我正在努力解决 resolve 和 resolved 与
use std::any::Any; pub enum ObjectType { Error, Function, } pub trait Object { fn obj_ty
美好的一天。需要一些新鲜的眼光。不确定为什么我的 Promise 在浏览器控制台中返回“pending”: // contact.js (react) /* trim */ submitForm =
我可以运行这段代码 fn testf(host: &str) {} fn start(host: &str) { testf(host); testf(host); } 但出于某种原因
我试图在 Rust 的线程中使用方法,但我收到以下错误消息 :21:10: 21:23 error: the type [closure@:21:24: 23:14 tx:std::sync::mps
对于应用程序的最近更新,我看到许多崩溃日志都包含核心数据无法完成故障的错误。但是在应用程序(启动或其他地方)中的任何地方,我都没有删除无法实现故障的对象,也不会级联删除它们。这个错误还能怎么发生?有没
我是一名优秀的程序员,十分优秀!