问题标签 [nsmanagedobjectid]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1239 浏览

ios - 使用核心数据的配置文件屏幕

嘿,首先让大家知道我是 Core-Data 的新手,所以和我一起做文章,好的,我有一个非常基本的登录系统,我有一个名为“Account”的实体和 2 个名为:“email”的属性,“密码”

让我们从问题开始,然后继续:

现在我能够将数据上传/插入到 sqlite 数据库中,并在用户尝试登录时使用“NSpredicate”来授权用户和密码。该应用程序有 3 个窗口主页、登录、注册;我现在的问题是:检索特定用户(已登录)“电子邮件”以显示在屏幕上的“UIlabel”中。

我为此创建了一个数组来存储结果,请看这里(这是在“主”屏幕上):

问题:

我只得到最后一个注册“电子邮件”的用户,例如,如果现在新用户注册并且电子邮件是“mail.com”,那么他会看到一个名为“gmail.com”的旧邮件。

我的注册码:

}

问题:

没问题,据我所知,信息已很好地发送到数据库。

我的登录代码:

问题:

如果用户输入正确的信息,他被移动到主屏幕,则没有问题代码有效。

但是它很大但是,问题是我需要一个唯一标识符来处理内部核心数据,而且我知道它不像具有主键的 mysql 数据库。我也听说过 Object-ID,但我不知道如何使用它。发现零信息有助于谷歌和零示例。

主要问题:

我需要的是在用户登录后获取的是电子邮件的对象 ID,然后在屏幕中获取此 ID,然后将电子邮件打印到"UIlabel"中。

现在我不知道核心数据如何与唯一标识符一起工作,所以我需要一种方法来完成这项任务,并使我的 sqlite 数据库中的所有“电子邮件”与正确的用户不同。

0 投票
0 回答
132 浏览

core-data - CoreData:错误:批量获取请求要求获取 1 个对象但收到 2 个对象

我使用两个持久存储:第一个是默认(内置)应用程序数据的只读,第二个是用户数据的读写。一旦用户在第二个存储中添加任何数据,就会出现此问题。在这种情况下,在执行performFetch: NSFetchedResultsController方法期间,我在调试控制台中看到以下消息:

我很清楚 CoreData 将这种情况解释为错误,因为 Managed ObjectIDs 的最后部分是相同的:

出于某种原因,CoreData 没有考虑到这些对象来自不同的商店:A570FA00-5B60-4C21-A9B1-8A49C2AAC58B84F31C0F-844D-44DD-BB2F-CC766BED8331对应。

除了控制台中的错误消息外,一切正常。但我宁愿不看到它。有没有人知道如何解决这种不同的商店 ObjectID 的冲突?

0 投票
1 回答
192 浏览

ios - 保存后我的 NSManagedObjectID 仍然是临时的。但为什么?

我保存了我的 managedObjects。但保存后我的 NSManagedObjectID 仍然是临时的。为什么?

0 投票
1 回答
115 浏览

swift - 使用 objectWithID 获取所有值为零的 managedObject

我正在处理核心数据。我想在我的应用程序的几个事件上更新托管对象。该托管对象在应用启动时创建或获取(如果存在)。我知道托管对象不是线程安全的,所以我没有将托管对象存储在内存中,而是存储objectID它,因为它是线程安全的。一旦对象被创建并保存到上下文中,我objectID就会存储它,所以我确信存储的 objectID 是永久的,而不是临时的。

在我想更新我的对象的事件中,我有以下代码:

这在大多数情况下都可以正常工作,但是在某些情况下,我正在使用对象self.managedObjectContext.objectWithID(objectId)但它的所有属性都是 nil,这不应该发生,因为对象已经创建并保存在上下文中。

有人可以指出获取具有 nil 属性值的对象的原因吗?

我知道的唯一原因是在objectWithID使用临时 objectID 调用方法时,但在我的情况下这不是真的,因为我只使用永久 objectID。

0 投票
0 回答
240 浏览

core-data - 处理 Core Data 的临时 NSManagedObjectID

我正在尝试检索核心数据实体的对象 ID。

我有两个 Core Data 上下文:main(mainQueueConcurrency) 和 child(privateQueueConcurrency) - 我知道,这不是最好的解决方案,但我仍在学习 Core Data,所以希望我的下一个实现会更好。

无论如何,我的目标是将图像下载的磁盘位置分配给传递的实体。由于 NSURLSession 在不同的线程上工作,我的主要上下文消失了。因此,我使用子上下文。

虽然由于在检索对象 ID 时没有保存我的主要上下文,但它是临时的,因此我无法进行适当的插入。

我在获取对象 ID 之前调用了一些保存语句,但没有任何区别。

下面的代码概述了我的情况。我用注释简化了一些地方,因为它们与这种情况无关。

我怎样才能做到这一点?谢谢。

0 投票
1 回答
238 浏览

ios - managedObjectID 抛出“未解析的标识符”错误

我正在尝试从 CoreData 存储中获取特定项目,以便我可以编辑键的特定值。编辑发生在与选择要编辑的实体不同的 ViewController 中。

prepare(for segue:)在原始视图控制器中使用 objectID 的方法将所选实体的 objectID 作为 URL 传递uriRepresenation()。这样做是因为我无法弄清楚如何将 objectID 存储为NSManagedObjectID(我收到类型不匹配的错误)

现在我已经在两个视图控制器之间传递了 URL,目标视图控制器具有以下代码:

和行:

抛出“使用未解析的标识符“managedObjectID””

我在这里遇到了一堵墙,似乎无法弄清楚这一点。API 文档建议这应该可以执行,但它引用的方法似乎不存在。

欢迎大家提出意见。

0 投票
1 回答
39 浏览

ios - objectID 多对多关系

我需要一些关于我的 Swift 菜鸟编程的帮助......

多对多关系中,我有一个NSManagedObjectID从另一个视图控制器中分离出来的。

为了从中检索数据,我使用了这个:

这很好用,但是当我尝试从关系中获取属性时,我被卡住了。

我试过这个:

但我收到一个错误告诉我:

无法将类型“__NSSingleObjectSetI”(0x10ac63aa8)的值转换为“NSNumber”(0x109e5a4a8)。

如果我使用?after as 而不是!它返回nil.

有人知道怎么做吗?

0 投票
1 回答
166 浏览

ios - NSManagedObjectID 的线程安全

NSManagedObjectId实例本身可以在线程之间安全地共享吗?我知道我可以降低一个级别并抓住它URIRepresentation,但如果我能避免这种情况,我会的。

谢谢!

0 投票
1 回答
303 浏览

ios - 核心数据对象id格式

我通过在不同的上下文中获取相同的对象获得了这些永久对象 ID:

<x-coredata://F1697911-CD8A-4D63-B40F-AB0CA020C873/Facility/p1>
<x-coredata://F1697911-CD8A-4D63-B40F-AB0CA020C873/Facility/p2>

GUID 部分F1697911-CD8A-4D63-B40F-AB0CA020C873是相同的。
实体部分是一样的。

它们是什么p1以及p2为什么不同?

我的期望是它们代表的对象应该是相同的。我在不同的托管对象上下文中使用它们,但据我所知,对象 id 应该是相同的。

谢谢。

0 投票
2 回答
859 浏览

ios - 通知错误:添加通知请求失败并出现错误

尝试创建本地通知失败并出现以下错误:

这意味着什么?