gpt4 book ai didi

ios - 从应用委托(delegate)中检索 managedObjectContext 时崩溃

转载 作者:行者123 更新时间:2023-12-01 17:22:56 26 4
gpt4 key购买 nike

因此,当我尝试在我的一个 View Controller 中检索我的 managedObjectContext 时,我收到了 EXC_BAD_ACESS(code=2...) 错误。

这是我的 getter 方法代码:

- (NSManagedObjectContext *) managedObjectContext {
if (self.managedObjectContext != nil) {
return self.managedObjectContext;
}
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil) {
self.managedObjectContext = [[NSManagedObjectContext alloc] init];
[self.managedObjectContext setPersistentStoreCoordinator: coordinator];
}

return self.managedObjectContext;
}

这就是我尝试检索 managedObjectContext 的方式
QVAppDelegate *appDelegate = (QVAppDelegate*)[[UIApplication sharedApplication] delegate];
self.managedObjectContext = appDelegate.managedObjectContext;

这是 appDelegate 中的定义
@property (strong, nonatomic) NSManagedObjectModel *managedObjectModel;
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@property (strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;

我正在使用 ARC 并将其转换为 tutorial's ARC的代码。

我真的似乎无法解决这个问题。

编辑:这里是它崩溃的地方 http://i.imgur.com/1yOS7TM.png

最佳答案

您似乎在这里有一个无限循环:

- (NSManagedObjectContext *) managedObjectContext {
if (self.managedObjectContext != nil) {
return self.managedObjectContext;
}
self.managedObjectContext转换为 [self managedObjectContext]这是你刚刚输入的方法。所以你一遍又一遍地调用访问器。

您没有正确复制该示例。

二、你 真的应该使用依赖注入(inject)而不是将您的 App Delegate 视为单例。我强烈建议研究 DI 并采用该设计模式。它会在以后为您节省很多痛苦。

更新 1

它在哪里崩溃?哪一行代码?是 self.managedObjectContext = appDelegate.managedObjectContext;或者别的地方? Xcode 中的断点在哪里触发?如果它在该行代码中触发,而不是在 -managedObjectContext 内部方法,那么您的 App Delegate 有问题(这应该是不可能的)。

关于ios - 从应用委托(delegate)中检索 managedObjectContext 时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21386445/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com