NSPredicate与NSManagedObjects的NSSet

时间:2012-10-17 21:08:47

标签: ios core-data entity-relationship

我有一个获取请求如下:

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

我还有一个名为genreFilter的NSSet of Genre(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

1 个答案:

答案 0 :(得分:1)

是。这对我来说是正确的。

这是我给另一个问题的answer,它包含简单的指令和代码,可以启动和运行准系统核心数据项目。我经常使用这个基本设置来快速测试这样的事情。