gpt4 book ai didi

iphone - 执行提取请求时崩溃

转载 作者:行者123 更新时间:2023-12-03 17:42:45 25 4
gpt4 key购买 nike

执行executeFetchRequest:error时发生崩溃:
MyApp[595]具有超出允许时间的 Activity 断言:

{(
<SBProcessAssertion: 0x1e5d1260> identifier: Suspending process: MyApp[595]
permittedBackgroundDuration: 10.000000 reason: suspend owner pid:29 preventSuspend
preventThrottleDownCPU preventThrottleDownUI

这是我的代码:
NSString *predString = [NSString stringWithFormat:@"categoryId MATCHES '%@'", categoryId];
NSPredicate *predicate = [NSPredicate predicateWithFormat:predString];
[request setPredicate:predicate];
NSError *error = nil;
NSArray* objects = [context executeFetchRequest: request error: &error];

据我了解,获取是在主线程中同步完成的,花费了太多时间,超过了10秒,并且进程被暂停。

在互联网上浏览时,我发现了一个不错的解决方案,可以使异步获取:

http://blog.zssz.me/2010/01/asynchronous-fetch-in-core-data.html

但我想知道我的假设是否正确,是否有解决此问题的简单方法。
非常感谢。

最佳答案

您不能将MATCHES运算符与SQL存储(您几乎肯定会使用)一起使用,因为sqlite不支持正则表达式。我希望它会出错而不是超时,但显然不会。

您想使用CONTAINS或更好的==。如果您有一个名为catergoryID的属性,它通常表示一个具有特定唯一值的属性,而不是具有很多次要变化的属性。使用== / equals将产生更快的获取。

关于iphone - 执行提取请求时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6341728/

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