はじめてのあいぱっどあぷり。
略して「はじあい」。
そんなワタクシですが無謀にもCoreDataにまで手を出しています。
で、日本語検索が出来なくてハマったのでメモ。
「day」という項目に曜日が格納されており、
それごとにデータを抽出しようとしています。
「dayList」は曜日一覧をまとめたNSArray。
「gNowDay」は現在表示させたい曜日の番号です。
NSPredicate *preDay = [NSPredicate predicateWithFormat:@"day == '%@'", [dayList objectAtIndex:gNowDay]]; [request setPredicate:preDay];
これだとダメでした。
「'%@'」の部分を「'土'」など決め打ちにしたらいけました。
次はうまくいったコード。
NSString *preDayStr = [NSString stringWithFormat:@"day == '%@'", [dayList objectAtIndex:gNowDay]]; NSPredicate *preDay = [NSPredicate predicateWithFormat:preDayStr]; [request setPredicate:preDay];
一度NSStringに格納してからやったら出来ました。
そういうもんなのかー。
そしてこれは複合条件の指定。NSCompoundPredicateを使います。
「土曜の東館」とか指定するわけですね。
NSString *preDayStr = [NSString stringWithFormat:@"day == '%@'", [dayList objectAtIndex:gNowDay]]; NSPredicate *preDay = [NSPredicate predicateWithFormat:preDayStr]; NSPredicate *preArea = [NSPredicate predicateWithFormat: @"areaCode == %d",areaCode]; NSPredicate *allPre = [NSCompoundPredicate andPredicateWithSubpredicates:[NSArray arrayWithObjects: preArea, preDay, nil]]; [request setPredicate:allPre];