【发布时间】:2013-06-15 08:12:59
【问题描述】:
我正在努力让正则表达式函数与 CoreData 提取一起工作。我在尝试过滤的NSManagedObject 子类上有一个名为maps 的属性。这个maps 属性是一个带有 id 值列表的字符串,如下所示:
1,10,12,8
这是我的谓词的构造方式:
NSString *format = [NSString stringWithFormat: @"(maps matches '.*\\b%@\\b.*')", _map.mapID];
NSPredicate *predicate = [NSPredicate predicateWithFormat:format];
[request setPredicate:predicate];
NSManagedObjectContext *moc = [[RKManagedObjectStore defaultObjectStore] primaryManagedObjectContext];
_resultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request
managedObjectContext:moc
sectionNameKeyPath:@"name.stringGroupByFirstInitial"
cacheName:nil];
我使用这个 Rubular 示例构建了 RegEx:http://rubular.com/r/zELaz19x0T
mapID 值是一个字符串形式的整数。
我已经阅读了关于 SO 的其他关于谓词匹配整个字符串的问题,但我觉得应该使用此模式在模式的开头和结尾使用 .* 来处理。
此代码的结果始终返回零结果。如果不使用谓词,则按预期返回所有对象。谁能看到这里有什么问题?谢谢!
【问题讨论】:
标签: objective-c regex core-data nspredicate