【发布时间】:2016-02-20 13:32:32
【问题描述】:
我有一个包含多个实体的数据模型。对于加入一对一关系的实体,从一个实体获取后,我可以通过关系访问另一个实体的属性。
//class for artists
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
@class Songs;
@interface Artists : NSManagedObject
@property (nonatomic, retain) NSString * artistname;
//this is relationship
@property (nonatomic, retain) Songs *songs;
//class for Songs
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
@class Artists;
@interface Songs : NSManagedObject
@property (nonatomic, retain) NSString * songname;
//this is relationship
@property (nonatomic, retain) Artists *artists;
如果关系是一对一的,一旦我执行了艺术家的获取并拥有一个 managedobjectcontext,我可以使用以下方法获取每个艺术家的歌曲:
NSLog(@"song for one hit wonder%@",self.artists.songs.songname);
当我将关系从一对一更改为一对多时,即一位艺术家,多首歌曲,这不再有效并引发引用[_NSFaultingMutableSet songname的错误
我尝试使用 value for key 访问歌曲,但没有成功。
NSLog(@"songs:%@",self.artists.songs.valueForKey[@"songname"]);
此外,我尝试在某处合并 NSSet,因为错误消息引用了可变集,并且据说以这种方式捕获了一对多关系,但我无法弄清楚如何使用 NSSet。
NSSet *songs = self.artists.songs.songname;//gives incompatible pointer type warning
任何关于如何在一对多关系的情况下从另一个实体检索值的建议将不胜感激。
【问题讨论】:
标签: ios core-data one-to-many