gpt4 book ai didi

iphone - executeFetchRequest 在第三次调用时崩溃

转载 作者:搜寻专家 更新时间:2023-10-30 19:48:40 24 4
gpt4 key购买 nike

我的 Objective-C 代码中有一个奇怪的问题。我有一个 View Controller ,我在“viewWillAppear”中调用自己的 loadData 方法。这很酷,直到 View 第三次可见。

当我调用时应用程序崩溃,没有任何异常或其他提示

NSArray *storeListArray = [managedObjectContext executeFetchRequest:fetchRequest error:&error];

我检查过 managedObjectContext 没有在其他地方意外释放。但事实似乎并非如此。 fetchRequest 是在上述调用之前创建的。我猜它在 executeFetchRequest 方法中的某处崩溃了。

有人知道我可以在哪里查找错误吗?真正困扰我的是它在第三次调用时可重现。

最佳答案

好吧...我解决了问题(我猜)。据我所知,问题是调用的“错误”。

我犯了一个愚蠢的错误,没有在调用之前初始化 NSError 对象。所以现在对我有用的是:

NSError *error = nil;
NSArray *storeListArray = [MOC executeFetchRequest:fetchRequest error:&error];

之前只是

NSError *error;

顺便说一下,我在很多例子中都是这么找的。但似乎这至少是问题的一部分。

我的整个代码现在看起来像这样:

MyAppDelegate *app = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];

NSManagedObjectContext *MOC = [app managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Store" inManagedObjectContext:MOC];
[fetchRequest setEntity:entity];

NSSortDescriptor *streetDescriptor = [[NSSortDescriptor alloc] initWithKey:@"street" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:streetDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];

NSError *error = nil;
NSArray *storeListArray = [MOC executeFetchRequest:fetchRequest error:&error];

也许这对某人有帮助。

关于iphone - executeFetchRequest 在第三次调用时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3933112/

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