Ios 链接CoreData中的两个对象

Ios 链接CoreData中的两个对象,ios,xcode,Ios,Xcode,我是新的核心数据,我创建了两个表,夜间和会话。我设法创建了新的夜间对象和会话对象。当我尝试此代码时: Session * session = [NSEntityDescription insertNewObjectForEntityForName:@"Session" inManagedObjectContext:[[DataManager sharedManager] managedObjectContext]]; Night * night = [NSEnti

我是新的核心数据,我创建了两个表,夜间和会话。我设法创建了新的夜间对象和会话对象。当我尝试此代码时:

        Session * session = [NSEntityDescription insertNewObjectForEntityForName:@"Session" inManagedObjectContext:[[DataManager sharedManager] managedObjectContext]];
        Night * night = [NSEntityDescription insertNewObjectForEntityForName:@"Night" inManagedObjectContext:[[DataManager sharedManager] managedObjectContext]];
        night.sessions = [NSSet setWithObject:session];

课程即将进入夜间,最酷的事情是,当我获取今晚的课程时,可以使用:

currentNight.Seesion
但我在DB表中看不到此链接:(

更新:

我的意思是,当我写
night.sessions=[NSSet setWithObject:session];
时,我需要在表DB中查看(在DB.sqlite文件中是)


我想我应该在那里看到一些东西…

核心数据不是一个
关系数据库
。它有自己的结构。它根据您的托管对象定义数据库表结构。为了进行调试,您可以看到核心数据在sqlite上触发了什么查询。这将向您展示核心数据是如何从这些tw获取数据的o桌子

您必须转到产品->编辑方案->然后从左侧面板选择运行
yourApp.app
,然后转到主面板的参数选项卡

您可以在那里添加启动时传递的
参数

您应该添加
-com.apple.CoreData.SQLDebug 1

OK
,您的密码就设置好了


下一次,它将显示它为从您的表中获取数据而运行的所有查询。

我不清楚您的问题是什么。但是:

上下文是草稿行。在您
-保存:
之前,它的内容不会移动到永久存储。如果您进入归档系统并在未保存的情况下检查应用程序外部的永久存储,您的更改将不会记录在那里

对于所有的存储,磁盘上的格式是未定义的,并且依赖于实现。因此,在核心数据之外检查它们并不是为了显示任何特定的结果

有趣的是,如果您使用的是SQLite存储,那么您应该查找一个名为Z_SESSIONS或类似的列。它将是一个多值列。其中将包含所有链接会话的行ID。核心数据存储与适当命名的列和直接行ID的关系,这是SQLite隐式提供的。它没有使用明确的外键/主键关系


强调这一点:这是一个特定于核心数据的实现。它的定义并不比ARM assembly LLVM为特定代码结构所提供的更可靠。了解它就像了解CPU如何缓存、分支预测等一样有帮助,但你不应该期望能够SQLite文件并在其他地方使用,或通过核心数据以外的任何方式与之交互。

DB tables表示SQLite??