gpt4 book ai didi

ios - 当我使用 NSArray 时 NSPredicate 崩溃

转载 作者:行者123 更新时间:2023-11-29 03:01:52 24 4
gpt4 key购买 nike

   +-----------+           +-----------+  
| -Parada- | | -Autobus- |
+-----------+ +-----------+
| nombre | | circuito |
+-------------+ +-------------+
|Relationships| |Relationships|
+-------------+ +-------------+
| byParada |<--------> | parada |
+-----------+ +-----------+

我想在 setupFetchedResultsController 中使用核心数据获取一些数据,问题是里面,在NSPredicate ,当我想使用 NSArray 进行过滤时它崩溃了.

这是代码:

NSArray  * myArray2 = [NSArray arrayWithObjects:@"1",@"2",@"3",nil];

NSString *predString = [NSString stringWithFormat:@"byParada.circuito IN %@", myArray2];
request.predicate = [NSPredicate predicateWithFormat:predString];

...结果如下:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to parse the format string "byParada.circuito IN (
1,
2,
3
)"'

事实上,如果我删除 myArray2 的所有数字只留下一个(NSArray * myArray2 = [NSArray arrayWithObjects:@"1",nil];)NSPredicate 有效!

任何帮助将不胜感激。

最佳答案

有两件事可以解决这个问题。首先,格式化字符串应该在 predicateWithFormat 中生成,而不是在 NSString 中生成,然后传递给谓词。其次,在一对多关系中,您必须包含 ANY 或 ALL。

request.predicate = [NSPredicate predicateWithFormat:@"ANY byParada.circuito IN %@", myArray2];

关于ios - 当我使用 NSArray 时 NSPredicate 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23201136/

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