0

次のようなフェッチリクエストがあります。

NSFetchRequest *songRequest = [NSFetchRequest fetchRequestWithEntityName:@"Song"];

genreFilterというジャンルのNSSet(NSManagedObjects)もあります。

genreFilterのジャンルと関係のある曲をフィルタリングするための述語を設定したいと思います。

この方法でNSPredicateを設定できますか?

NSPredicate *songRequestPredicate = [NSPredicate predicateWithFormat:@"genre IN %@", [_genreFilter allObjects]];

ジャンルは次のようになります。

@interface Genre : NSManagedObject

@property (nonatomic, strong) NSNumber * id;
@property (nonatomic, strong) NSString * name;
@property (nonatomic, strong) NSSet *preset;
@property (nonatomic, strong) NSSet *song;
@end
@interface Genre (CoreDataGeneratedAccessors)

- (void)addPresetObject:(Preset *)value;
- (void)removePresetObject:(Preset *)value;
- (void)addPreset:(NSSet *)values;
- (void)removePreset:(NSSet *)values;

- (void)addSongObject:(Song *)value;
- (void)removeSongObject:(Song *)value;
- (void)addSong:(NSSet *)values;
- (void)removeSong:(NSSet *)values;

@end

とこのような曲:

@interface Song : NSManagedObject

@property (nonatomic, strong) NSNumber * arousal;
@property (nonatomic, strong) NSNumber * id;
@property (nonatomic, strong) NSNumber * match;
@property (nonatomic, strong) NSNumber * popularity;
@property (nonatomic, strong) NSNumber * valence;
@property (nonatomic, strong) NSNumber * cloud;
@property (nonatomic, strong) Genre *genre;
@property (nonatomic, strong) Year *year;
@property (nonatomic, strong) Period *period;
@property (nonatomic, strong) NSNumber *yearReleased;

@property (nonatomic, assign) float score;
@property (nonatomic, readonly) MPMediaItem *mediaItem;

@end
4

1 に答える 1

1

はい。それは私には正しいように見えます。

これが私が別の質問に答えたものです。これには、必要最低限​​のコアデータプロジェクトを稼働させるための簡単な手順とコードが含まれています。私はよくこの基本的な設定を使用して、このようなことをすばやくテストします。

于 2012-10-18T09:00:25.863 に答える