

Storyという名前のエンティティ名でCoreData保存しました。

中身はattributeのみで、  
![画像の説明をここに入力](https://i.stack.imgur.com/uJUlI.png)

このような構成になっています。

これをNSPredicateのCONTAINSを使って

>
[code]

>         NSFetchRequest* request = [NSFetchRequest
> fetchRequestWithEntityName:@"Story"];
>         request.predicate = [NSPredicate predicateWithFormat:@"tap_count
> CONTAINS '0'"];
>         NSArray* result = [[DataBaseManager shared].moc
> executeFetchRequest:request error:nil];
>  
[/code]

と書いたところtap_countが0,10,20の３つのNSManagedObjectが取れました。

でも本当はtap_count 0だけを取りたいので、

>
[code]

>         request.predicate = [NSPredicate predicateWithFormat:@"tap_count ==
> '%d'",_tapCount];
>  
[/code]

だとか

>
[code]

>         request.predicate = [NSPredicate predicateWithFormat:@"tap_count
> MATCHES '[%d]'",_tapCount];
>  
[/code]

とかいろいろ試してみたのですが、うまく取り出せません。

取り出し方を教えてください。よろしくお願いします。


CC BY-SA 3.0
2015-06-01T11:03:38.640
10844
2015-08-01T01:34:32.777
9952
question
objective-c coredata
CoreDataでNSPredicate。CONTAINSでは取り出せるのに、他の方法で取り出せません。


取り出せるようになりました。

`=`演算子を使うときは `==`ではなく、`=`なんですね。

[code]

    NSFetchRequest* request = [NSFetchRequest fetchRequestWithEntityName:@"Story"];
    NSString* predicateStr = [NSString stringWithFormat:@"tap_count = '%d'",_tapCount];
    request.predicate = [NSPredicate predicateWithFormat:predicateStr];
    NSArray* result = [[DataBaseManager shared].moc executeFetchRequest:request error:nil
    
[/code]


CC BY-SA 3.0
2015-06-01T23:53:36.127
10858
2015-06-02T00:14:29.353
2015-06-02T00:14:29.353
7214
9956
10844
answer