问题标签 [nsentitydescription]
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 - 如何获取 CoreData DB 中特定属性的总和?
我最近刚刚能够填充我的核心数据数据库。我有一个名为username的属性,我想获取系统上的用户总数(在数据库中)并将其打印出来。我知道我需要将NSFetchRequest 与NSEntityDescription一起使用。我只是不知道该怎么做。我还没有真正在 SO 上看到过这样的问题。实体名为Account,我的属性标记为username
ios - 如何针对登录过程的钥匙串检查/比较文本字段中的值?
我正在创建一个多用户 iPhone 应用程序,并且正在尝试完成用户登录过程中的编码。我可以成功创建一个帐户,并将用户输入的数据存储到 Core Data DB 中,并将 pin 存储到 Keychain 中,所以现在我正在尝试完成登录过程。下面列出的以下代码是我到目前为止所拥有的,我收到一个错误,“帐户”没有可见的@interface 声明选择器“密码:”
Account 类文件m和h如下所示:
帐户.m
帐户.h
我将不胜感激任何想法或想法,并感谢您的阅读。
ios - iOS - 如何使用钥匙串/核心数据创建登录过程?
我正在创建一个多用户 iPhone 应用程序,并且正在尝试完成用户登录过程中的编码。我可以成功创建一个帐户,并将用户输入的数据存储到 Core Data DB 中,并将 pin(密码)存储到 Keychain 中,所以现在我正在尝试完成登录过程。下面列出的以下代码是我到目前为止所拥有的,我想知道我需要做什么才能完成登录过程。
Account和AccountBase类文件m和h如下所示:
Account.h http://pastie.org/4149299
Account.m http://pastie.org/4149296
AccountBase.h http://pastie.org/4149301
AccountBase.m http://pastie.org/4149302
我将不胜感激任何想法或想法,并感谢您的阅读。
ios - ios核心数据 - 将实体记录复制到另一个实体
我有 2 个实体,Units 和 BUnits,Units 实体有一个数据会被多次替换,BUnits 将是 Units 实体在清除数据之前的备份。
所以,我创建了一个NSManagedObjectContext
实例,然后我通过使用为每个实体检索了一个实例
但我没有设法将 Units 实体记录复制到 BUnits 实体,除了为每个记录创建一个循环,但我相信有更好的解决方案。
您对此有何看法,有更好的解决方案吗?
更新:
如果有人可以使用它,我使用的解决方案在我的回答中,我认为有更好的方法可以做到这一点,我会继续检查它,如果我发现任何问题,我会更新问题。
ios - 在插入之前分配 NSManagedObject 属性不会坚持
我试图在使用字典将它们插入上下文之前分配 NSManagedObject 的属性值。我遇到的问题是对象值在插入后被归零。
我正在根据以下文档工作:
NSManagedObject
NSManagedObject 使用动态类生成来支持 Objective-C 2 属性特性(参见“声明的属性”),通过自动创建适合于 entity.initWithEntity:insertIntoManagedObjectContext 的类的子类:因此返回实体的适当类的实例。动态生成的子类将基于实体指定的类,因此在模型中指定自定义类将取代传递给 alloc 的类。
如果 context 不是 nil,则调用此方法[context insertObject:self]
(这会导致调用 awakeFromInsert)。
这意味着我可以在上下文之外创建一个 NSManagedObject,执行任何必要的操作,然后自己使用[context insertObject:self]
使用它,我为 NSManagedObject 实现如下:
根据我的日志,该对象已成功初始化并分配了它的所有属性,但是一旦获取,所有对象属性都为零。于是我又读了一些,发现:
从插入唤醒
当接收器首次插入托管对象上下文时,由 Core Data 框架自动调用。
您通常使用此方法来初始化特殊的默认属性值。此方法在对象的生命周期中仅调用一次。
我想如果有任何地方的值会被归零,那就是它。想象一下我实施时的惊喜
并且日志从未出现过。然而,在插入之后,所有属性都为零(稍后修改值棒)。
所以,我的问题是,如何在插入棒之前制作属性值或将该字典携带到 awakeFromInsert 中,以便我可以在那里分配值(因为文档说这是应该分配它们的地方)。
在我得到关于“为什么”的问题之前,这是答案。我需要尽可能减少人为的开销。一切都非常耗费资源,尤其是通过 NSFetchedResultsController 连接到 UITableView。非常常见的事件会触发每个对象的 12 次插入 + 15 次属性更改。我从中获得的最大好处是减少了我获得的大量 ping:
特别是对于由排序属性更改引起的移动事件。
非常感谢任何帮助。
干杯,Z
objective-c - 为什么我不能在 for 循环中追加字符串?
我有以下代码,我试图简单地循环遍历一个实体,并且对于每个 NSPropertyDescription 名称,将其附加到一个可变字符串,我将在其中构建一个进一步的字符串。
运行以下代码时的问题是我得到一个
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Attempt to mutate immutable object with appendString:'
我无法弄清楚我做错了什么。我不能将 NSString 附加到 NSMutableString 吗?
ios - NSSortDescriptor 代码中的 iOS 内存泄漏
我在以下 CLASS 辅助函数中遇到了内存泄漏(见下文 >>)。
cocoa - 从 NSArrayController -arrangedObjects 访问核心数据实体名称
给定一个NSArrayController
绑定到 IB 中 moc 的“objController”,下面的工作不应该吗?鉴于它似乎不起作用,我该如何从我的 中检索实体的名称NSArrayController
?
“objController”是 IBOutlet-ed 并设置为“实体名称”模式,实体名称设置为模型中定义的实体。这个实体确实有子实体(因此我想访问它的描述名称的原因,因为它NSArrayController
可以存储许多不同的子实体类型),但子实体的存在似乎并没有什么不同。
...在调试器中,“description”看起来是一个有效的NSEntityDescription
对象,但“entityName”被设置为一个_PFEncodedString
没有内容的对象。但是,“entityAttributeValue”很好,填充了存储在 Core Data 中的正确值。
我想,解决这个问题的一种方法是对我所有的 CD 实体进行自定义分类,然后使用 -isKindOfClass
来获取我需要的信息。
有任何想法吗?
core-data - 是否可以在一个 iOS 应用程序上拥有多个核心数据“数据库”?
我想写一个大量利用核心数据的“管理”游戏。游戏需要用户/系统无法更改的预设、预定义数据集;它用于为游戏播种数据,并且是只读的。
我能举出的最好的例子是足球管理游戏,但它可以是任何东西。在一些足球管理模拟游戏中,它们为您提供场景和预设数据集。
随着用户进行游戏,他们可以保存/加载保存到核心数据中的进度。
除此之外,用户可以接收预定义数据的更新或购买场景数据包;保存到他们的设备中。
因此,可能有多个“核心数据数据库”(是的,我知道核心数据并不是严格意义上的数据库)或应用程序可以潜入和使用的“存储桶”。
数据的架构不会改变。
所以我们有:
- 仅用于播种游戏的预定义数据(默认数据)。
- 用户当前保存的游戏。
- 用户从 Internet 下载了一个场景。
- 问题:当用户在“场景”中保存游戏时会发生什么。
- 问题:如何在核心数据中跟踪所有场景和所有用户保存的游戏?
这听起来像是在给定时间有多个数据库。显然,应该限制用户可以制作多少个存档游戏。
另一种解决方案是,用户的设备以 JSON 或 XML 格式导出数据的备份副本,并将其用作“保存数据”,我也可以将此策略用于场景。显然需要某种加密来防止人们通过 XML 简单地更改游戏中的统计数据。
但我从一开始就想知道使用 iOS 设备的核心数据处理超过 1 个核心数据“数据库”的最佳方式是什么?
谢谢你的时间
iphone - 带有 NSManagedObject 的 EXC_BAD_ACCESS
我正在尝试在多个表中插入值(准确地说是 25 个),我能够在除一个表之外的所有表中插入记录,这是因为只有一个属性,如果我删除该属性,它就会开始保存数据到表中,但是当我添加该属性并尝试设置其值时,它以 EXC_BAD_ACCESS 终止。
我尝试更改属性的名称,甚至是表的名称,但没有奏效。下面是我的代码::