Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.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,核心数据。是否从表中请求以数字符号开头的所有记录,而无需额外的数据处理?_Ios_Core Data_Nspredicate_Numeric_Nsfetchrequest - Fatal编程技术网

iOS,核心数据。是否从表中请求以数字符号开头的所有记录,而无需额外的数据处理?

iOS,核心数据。是否从表中请求以数字符号开头的所有记录,而无需额外的数据处理?,ios,core-data,nspredicate,numeric,nsfetchrequest,Ios,Core Data,Nspredicate,Numeric,Nsfetchrequest,这里有很多使用“匹配”的解决方案,在这种情况下根本不起作用: 2013-08-20 10:30:40.890 ColonialChadstone[2609:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unimplemented SQL generation for predicate (SELF MATCHES "[0-9]+.*")' 最终解决方案应如下所示

这里有很多使用“匹配”的解决方案,在这种情况下根本不起作用:

2013-08-20 10:30:40.890 ColonialChadstone[2609:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unimplemented SQL generation for predicate (SELF MATCHES "[0-9]+.*")'
最终解决方案应如下所示:

NSFetchedRequest *request = [[[NSFetchRequest alloc] init] autorelease];
NSString *predicateStr = [NSString stringWithFormat:@"SELF MATCHES '%@'", @"[0-9]+.*"];
[request setPredicate:predicateStr];
NSArray *resultArray = [context executeFetchRequest:request error:nil];

尝试使用
[request setPredicate:[NSPredicate predicateWithFormat:predicateStr]]
而不是放置
NSString

(Valentin是正确的,在创建 谓词。它可能适用于您的情况,但通常容易出错,因为
stringWithFormat
predicateWithFormat
之间的说明符和引用规则不同

谓词的问题在于无法比较托管对象本身(“SELF”) 对于模式,只有托管对象的特定属性:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"attribute MATCHES %@", @"[0-9]+.*"]
[request setPredicate:predicate];

您应该首先显示实际代码,而不是只请求解决方案。但是问题很清楚,这段代码并不影响它如何编译
setPredicate:
接受NSPredicate参数,而不是NSString。此外,我想说我自己找到了一个解决方案,但您的解决方案要好得多。我尝试使用NSCompoundPredicate,它包含许多类似“%@BEGINSWITH%@”的
nspredicate
。我想我已经尝试了所有可能的论点组合