问题标签 [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.
ios - 使用核心数据的配置文件屏幕
嘿,首先让大家知道我是 Core-Data 的新手,所以和我一起做文章,好的,我有一个非常基本的登录系统,我有一个名为“Account”的实体和 2 个名为:“email”的属性,“密码”。
让我们从问题开始,然后继续:
现在我能够将数据上传/插入到 sqlite 数据库中,并在用户尝试登录时使用“NSpredicate”来授权用户和密码。该应用程序有 3 个窗口主页、登录、注册;我现在的问题是:检索特定用户(已登录)“电子邮件”以显示在主屏幕上的“UIlabel”中。
我为此创建了一个数组来存储结果,请看这里(这是在“主”屏幕上):
问题:
我只得到最后一个注册“电子邮件”的用户,例如,如果现在新用户注册并且电子邮件是“mail.com”,那么他会看到一个名为“gmail.com”的旧邮件。
我的注册码:
}
问题:
没问题,据我所知,信息已很好地发送到数据库。
我的登录代码:
问题:
如果用户输入正确的信息,他被移动到主屏幕,则没有问题代码有效。
但是它很大但是,问题是我需要一个唯一标识符来处理内部核心数据,而且我知道它不像具有主键的 mysql 数据库。我也听说过 Object-ID,但我不知道如何使用它。发现零信息有助于谷歌和零示例。
主要问题:
我需要的是在用户登录后获取的是电子邮件的对象 ID,然后在主屏幕中获取此 ID,然后将电子邮件打印到"UIlabel"中。
现在我不知道核心数据如何与唯一标识符一起工作,所以我需要一种方法来完成这项任务,并使我的 sqlite 数据库中的所有“电子邮件”与正确的用户不同。
core-data - CoreData:错误:批量获取请求要求获取 1 个对象但收到 2 个对象
我使用两个持久存储:第一个是默认(内置)应用程序数据的只读,第二个是用户数据的读写。一旦用户在第二个存储中添加任何数据,就会出现此问题。在这种情况下,在执行performFetch: NSFetchedResultsController方法期间,我在调试控制台中看到以下消息:
我很清楚 CoreData 将这种情况解释为错误,因为 Managed ObjectIDs 的最后部分是相同的:
出于某种原因,CoreData 没有考虑到这些对象来自不同的商店:A570FA00-5B60-4C21-A9B1-8A49C2AAC58B和84F31C0F-844D-44DD-BB2F-CC766BED8331对应。
除了控制台中的错误消息外,一切正常。但我宁愿不看到它。有没有人知道如何解决这种不同的商店 ObjectID 的冲突?
ios - 保存后我的 NSManagedObjectID 仍然是临时的。但为什么?
我保存了我的 managedObjects。但保存后我的 NSManagedObjectID 仍然是临时的。为什么?
swift - 使用 objectWithID 获取所有值为零的 managedObject
我正在处理核心数据。我想在我的应用程序的几个事件上更新托管对象。该托管对象在应用启动时创建或获取(如果存在)。我知道托管对象不是线程安全的,所以我没有将托管对象存储在内存中,而是存储objectID
它,因为它是线程安全的。一旦对象被创建并保存到上下文中,我objectID
就会存储它,所以我确信存储的 objectID 是永久的,而不是临时的。
在我想更新我的对象的事件中,我有以下代码:
这在大多数情况下都可以正常工作,但是在某些情况下,我正在使用对象self.managedObjectContext.objectWithID(objectId)
但它的所有属性都是 nil,这不应该发生,因为对象已经创建并保存在上下文中。
有人可以指出获取具有 nil 属性值的对象的原因吗?
我知道的唯一原因是在objectWithID
使用临时 objectID 调用方法时,但在我的情况下这不是真的,因为我只使用永久 objectID。
core-data - 处理 Core Data 的临时 NSManagedObjectID
我正在尝试检索核心数据实体的对象 ID。
我有两个 Core Data 上下文:main(mainQueueConcurrency) 和 child(privateQueueConcurrency) - 我知道,这不是最好的解决方案,但我仍在学习 Core Data,所以希望我的下一个实现会更好。
无论如何,我的目标是将图像下载的磁盘位置分配给传递的实体。由于 NSURLSession 在不同的线程上工作,我的主要上下文消失了。因此,我使用子上下文。
虽然由于在检索对象 ID 时没有保存我的主要上下文,但它是临时的,因此我无法进行适当的插入。
我在获取对象 ID 之前调用了一些保存语句,但没有任何区别。
下面的代码概述了我的情况。我用注释简化了一些地方,因为它们与这种情况无关。
我怎样才能做到这一点?谢谢。
ios - managedObjectID 抛出“未解析的标识符”错误
我正在尝试从 CoreData 存储中获取特定项目,以便我可以编辑键的特定值。编辑发生在与选择要编辑的实体不同的 ViewController 中。
我prepare(for segue:)
在原始视图控制器中使用 objectID 的方法将所选实体的 objectID 作为 URL 传递uriRepresenation()
。这样做是因为我无法弄清楚如何将 objectID 存储为NSManagedObjectID
(我收到类型不匹配的错误)
现在我已经在两个视图控制器之间传递了 URL,目标视图控制器具有以下代码:
和行:
抛出“使用未解析的标识符“managedObjectID””
我在这里遇到了一堵墙,似乎无法弄清楚这一点。API 文档建议这应该可以执行,但它引用的方法似乎不存在。
欢迎大家提出意见。
ios - objectID 多对多关系
我需要一些关于我的 Swift 菜鸟编程的帮助......
在多对多关系中,我有一个NSManagedObjectID
从另一个视图控制器中分离出来的。
为了从中检索数据,我使用了这个:
这很好用,但是当我尝试从关系中获取属性时,我被卡住了。
我试过这个:
但我收到一个错误告诉我:
无法将类型“__NSSingleObjectSetI”(0x10ac63aa8)的值转换为“NSNumber”(0x109e5a4a8)。
如果我使用?
after as 而不是!
它返回nil
.
有人知道怎么做吗?
ios - NSManagedObjectID 的线程安全
NSManagedObjectId
实例本身可以在线程之间安全地共享吗?我知道我可以降低一个级别并抓住它URIRepresentation
,但如果我能避免这种情况,我会的。
谢谢!
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 应该是相同的。
谢谢。
ios - 通知错误:添加通知请求失败并出现错误
尝试创建本地通知失败并出现以下错误:
这意味着什么?