Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSPredicate在操作中使用的多对多比较_Ios_Objective C_Core Data_Nspredicate - Fatal编程技术网

Ios NSPredicate在操作中使用的多对多比较

Ios NSPredicate在操作中使用的多对多比较,ios,objective-c,core-data,nspredicate,Ios,Objective C,Core Data,Nspredicate,我正在尝试从核心数据中获取记录。这是一个任务列表任务实体与标记实体有对多关系 现在我需要用一些过滤过的标签获取任务 due_date = nil AND status != 2 AND (user_id = 26894 OR owner.id = 26894) AND (title contains[cd] 'shop' OR owner.name contains[cd] 'shop' OR owner.email contains[cd] 'shop' OR note contains[cd

我正在尝试从核心数据中获取记录。这是一个任务列表<代码>任务实体与
标记
实体有
对多
关系

现在我需要用一些过滤过的
标签
获取
任务

due_date = nil AND status != 2 AND (user_id = 26894 OR owner.id = 26894) AND (title contains[cd] 'shop' OR owner.name contains[cd] 'shop' OR owner.email contains[cd] 'shop' OR note contains[cd] 'shop') AND ANY tags.id IN (
    2021,
    6573,
    6588
)
角色

AND ANY tags.id IN (
        2021,
        6573,
        6588
    )
正在导致应用程序崩溃,出现以下错误

 -[__NSCFNumber countByEnumeratingWithState:objects:count:]: unrecognized selector sent to instance 0x163b3500
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber countByEnumeratingWithState:objects:count:]: unrecognized selector sent to instance 0x163b3500'
以下是我的完整方法:

+ (NSPredicate *)predicateGetIdeasOffline {
    NSString *predicateString = [NSString stringWithFormat:@"due_date = nil AND status != 2 AND (user_id = %@ OR owner.id = %@)", [DBUsers currentUser].id, [DBUsers currentUser].id];

    if ([MKGlobals tasksSearchFilter].length > 0) {
        NSString *searchTerm = [MKGlobals tasksSearchFilter];
        predicateString = [NSString stringWithFormat:@"%@ AND (title contains[cd] '%@' OR owner.name contains[cd] '%@' OR owner.email contains[cd] '%@' OR note contains[cd] '%@')", predicateString, searchTerm, searchTerm, searchTerm, searchTerm];
    }

    if ([MKGlobals tagsList].count > 0) {
        predicateString = [NSString stringWithFormat:@"%@ AND ANY tags.id IN %@", predicateString, [MKGlobals tagsListIDs]];
    }
    return [NSPredicate predicateWithFormat:predicateString];
}

如何创建这样的
NSPredicate
我也有同样的问题,只是因为我使用了
NSSet
并调用了
[NSPredicate predicateWithFormat:@“ID IN%@,[set allObjects]”。对我有效的方法是在调用谓词函数之前将NSSet完全更改为NSArray

您确定[MKGlobals tagsListIDs]正在返回数组吗?当然,您可以查看NSLog(问题2021、6573、6588)