正規表現関数を CoreData フェッチで動作させようとして、壁に頭をぶつけています。フィルタリングしようとしてmaps
いるサブクラスで名前が付けられた属性があります。NSManagedObject
この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の他の質問を読みましたが、パターン.*
の最初と最後に を使用して、このパターンで処理する必要があるように感じます。
このコードの結果は、常にゼロの結果を返します。述語が使用されていない場合、すべてのオブジェクトが期待どおりに返されます。ここで何が問題なのか誰にもわかりますか?ありがとう!