Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 执行SQL连接请求的核心数据方式_Ios_Sql_Objective C_Core Data - Fatal编程技术网

Ios 执行SQL连接请求的核心数据方式

Ios 执行SQL连接请求的核心数据方式,ios,sql,objective-c,core-data,Ios,Sql,Objective C,Core Data,我正在尝试实现简单的库存类型数据库。我在玩家的飞船上有一个设备列表,每个设备都可以处于激活/停用状态。 问题是,我想将有关设备规格的数据保存在称为DeviceData的单独实体中,所以核心数据方案如下所示: 我正在用这个请求获取数据: NSFetchRequest *fetchRequest = [[NSFetchRequest fetchRequestWithEntityName:@"SpaceshipDevice"] init]; fetchRequest.sortDescriptors

我正在尝试实现简单的库存类型数据库。我在玩家的飞船上有一个设备列表,每个设备都可以处于激活/停用状态。 问题是,我想将有关设备规格的数据保存在称为DeviceData的单独实体中,所以核心数据方案如下所示:

我正在用这个请求获取数据:

NSFetchRequest *fetchRequest = [[NSFetchRequest fetchRequestWithEntityName:@"SpaceshipDevice"] init];
fetchRequest.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"deviceData.deviceName" ascending:NO]];
fetchRequest.fetchBatchSize = 20;

NSFetchedResultsController *frc = [[NSFetchedResultsController alloc]
                                   initWithFetchRequest:fetchRequest
                                   managedObjectContext:self.managedObjectContext
                                   sectionNameKeyPath:@"deviceData.deviceType"
                                   cacheName:nil];
frc.delegate = self;
self.fetchedResultsController = frc;
我所关心的是DeviceData中的“实例”关系,其唯一目的是与SpaceshipDevice实体的“DeviceData”关系相反。这让我觉得好像有什么不对劲。有没有更好的办法

在SQL中,此请求如下所示:


据我所知,你想要的东西看起来不错。SpaceshipDevice表是如何处理DeviceData和Spaceship之间的多对多关系的。是的,但它是一对多,而不是多对多。如果是多对多,我如何指定像@“deviceData.deviceName”这样的排序描述符?据我所知,它将是NSSet属性。