问题标签 [nsmanagedobject]

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 投票
1 回答
3183 浏览

iphone - 使用 NSDictionary 内容创建 NSManagedObject

我想用 NsDictionary 的内容创建一个 NSManagedObject。和Visa Versa。

我有一个 NSDictionary,其中包含从 MYSQL 数据库引入并存储到文档目录的对象和键。我找不到编辑字典的好信息,所以我想我会尝试使用 NSManaged Object。

如果对象属性发生更改,我希望能够反转过程并将对象发回。

找到这方面的例子的任何帮助都会很棒。

谢谢,

迈克尔

0 投票
1 回答
919 浏览

iphone - CoreData:NSManagedObject 不响应用户定义的消息

使用 CoreData(在 iPhone 应用程序上)我从模型生成了我的实体类,并为一些方法添加了更多方法。似乎有时我会因为调用其中一种方法而遇到异常。该异常不是随机的,而是仅涉及一些 ManagedObject 子类(其他似乎正确响应)。这是我得到的一个例子:

2010-07-15 10:29:55.216 LP[6686:207] *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[NSManagedObject printTime]:无法识别的选择器发送到实例 0x5b50af0”

NSManagedObject 是我从 fetch 中获得的对象(转换为正确的子类),我正在谈论的方法是打印方法。(我试图检索那些也不是故障)我错过了什么吗?

0 投票
2 回答
1887 浏览

ios - 有人可以解释这个@synthesize 语法吗?

我正在关注最新 iOS SDK 中包含核心数据的示例导航视图模板。

rootViewController.m文件中,我在@synthesize 行中看到了这一点:

头文件在哪里:

}

这是否意味着它们都是 @synthesized (创建 getter 和 setter),但是一个设置为等于另一个?看来这fetchedResultsController也是文件中的一种方法rootViewController.m

这个模板在这个 SDK 版本中发生了变化,我正在关注 Apress 的更多 iPhone 3 开发,这真的很困惑。

0 投票
3 回答
3708 浏览

iphone - 将 NSManagedObject 的实例添加到 NSManagedObjectContext ok,更新同一个实例失败

我在我的 iPhone 应用程序中使用核心数据。我创建了一个简单的类Friend,它派生自NSManagedObject并使用以下属性:

我能够在我的上下文中添加和删除此类的实例,并且我的更改也是持久的。
现在我想更新/修改一个Friend实例并使其再次持久化。

但这似乎行不通。

这是一段代码,它显示了我的问题:

在评论 1 一切都很好。我得到了 Friend 类型的新NSManagedObject ,可以更改 name 属性。上下文告诉我有一些东西可以保存。保存上下文后,我看到context.hasChanges == 0。另请注意,数据在保存上下文后是持久的。

在评论 2 之后,我更改了 name 属性。现在我希望context.hasChanges == 1并且在上下文保存之后我希望新名称是持久的。但不幸的是它不是。再次启动应用程序,使用 name-property = @"name1"加载Friend实例。

我在核心数据文档中找不到任何提示或示例。那么我做错了什么?我必须做些什么来更新/修改现有的Friend实例并使其持久化?

我看到的唯一解决方案是删除条目,更改它,然后再次添加。但我认为这不是正确的方法。

谢谢!

0 投票
2 回答
544 浏览

objective-c - 核心数据:删除未保存的对象时出错

我在核心数据项目上遇到了一些麻烦。我有一个带有 NSManagedObjects 的 NSArrayController 和 + / - 按钮。如果我在保存文件后删除行中的一个对象,它可以正常工作,但是如果我添加一个新对象,然后立即再次删除它(不更改任何默认值),我会收到一个错误:

如果我撤消新对象的添加,情况也是如此。

任何人都可以给我一个指针怎么办?我认为这与它只有一个临时 ID 有关,但我不知道如何解决它。

0 投票
2 回答
3623 浏览

objective-c - 了解 NSManagedObject

在一个现有项目中,我尝试在项目创建很久之后引入 Core Data,因此它的模型已经到位。我已经创建了 xcdatamodel 并向其中添加了我唯一的类。该类应该充当我应用程序中对象的全局存储。该类正确实现了 NSManagedObject 并且我已经验证它是在上下文中创建和保存的,也可以通过获取结果进行检索。

在这个类中保存数据的方式是通过 NSMutableArray。但这只是行不通。这是这个类的一个片段:

在实现中,我还像这样覆盖 initWithEntity:

init 方法仅初始化可变数组,我可以从日志中看到它在创建实体时被应用程序委托正确调用。add 方法只是将消息 insertObject 发送到persistentStorage。由此产生的问题:

  1. 我在“概念上”做对了吗?我的意思是,在托管对象中有实例变量并像我一样初始化是否正确?
  2. 当 ns 记录持久存储的大小时,即使在 addObject 消息之后记录片刻,我也总是得到 0 (编辑:这不是真的,我再次验证并且我正确地添加了 1)
  3. 通过persistentStorage 存储在托管对象类中的对象是具有属性的普通类。我需要和他们做些什么吗?我想不是因为我在运行时没有收到任何错误。
0 投票
1 回答
121 浏览

objective-c - 什么是在表格视图中显示大量 NSManagedObjects 而没有太多资源开销的有效方法?

我正在开发一个表格视图,它将显示所有某种类型的托管对象,我想知道我是否应该做一些事情来防止在用户滚动并且我设置一个新单元格时一直触发错误在数据源中?

我不太了解大量托管对象(数百个)的详细信息,但我知道触发故障会耗费资源,如果每次出现单元格时,我都会询问托管对象的其中一个属性,我是否应该在 viewDidLoad 中创建一个单独的新数组,其中包含显示表格视图单元格所需的所有信息,从而防止托管对象的重复故障?

感谢您对此的任何帮助。

0 投票
2 回答
976 浏览

core-data - COMPILED Core Data Managed Object Model:从它及其对应的数据库中获取最大的信息

我是 Objective-C 的新手;而且我在我的书籍或互联网上找不到任何解决方案。

我的问题:在没有源代码的情况下使用已编译的 .mom 和 SQLite db 的最有效和最快的方法是什么?

详细信息: 我正在尝试将我的小应用程序连接到另一个应用程序的数据库并使用(只读)其部分数据。但这项任务很困难,因为该应用程序没有 SDK。

该应用程序有一个已编译的 .mom 文件和一个 SQLite 数据库。

我成功地以编程方式(不使用 IB)使用 .mom 连接到数据库,并且可以设法获取实体,将数据填充到我重新创建的对象中等。但我每一步都在猜测、试验和错误。因此,开发需要大量时间并且容易出错。剖析最困难的任务是通过中间表建立对多关系。

例如:实体“书籍”与“作者”有关系。由于作者的顺序很重要,因此有一个中间表“authorsNumbered”,其中包含以下字段:数字、作者、书籍;并且“数字”字段确定作者的确切顺序,因为它们应该出现在任何地方(重要!)

我终于设法使用 NSSortDescriptor 创建了一个有序的作者数组,但我花了整整一周的时间才找到并猜测如何去做!

您会建议更有效的方法来处理已编译的 .mom 而不是我使用的方法吗?

谢谢

0 投票
1 回答
4261 浏览

iphone - 如何用字符串唯一标识nsmangedobject?

我正在使用核心数据和区域监控。区分受监控区域的唯一方法是使用 NSString 作为标识符。我很想使用 NSManagedObjectID,但我无法让它工作。

我试过的:

我得到的错误是:

任何更好的方法的想法?或者我做错了什么?

0 投票
1 回答
347 浏览

iphone - NSManagedObjectContext 问题

我已经使用“使用 coredata”选项设置了我的项目。

XCode 显然自动为我设置了所有这些,现在我在应用程序委托头文件中有这些行:

我的第一个问题是,为什么托管对象和东西的初始指针有下划线?这就是它们在 .m 文件中的使用方式,但@propertys 没有下划线。

我的下一个问题是,我想在脚本中进一步使用上下文,所以我使用了这些行:

现在这行不通了,因为 obvs 没有@synthesize。但是我需要合成什么?我用下划线合成还是不用下划线,我明白了吗?delegate.managedObjectContext还是delegate.managedObjectContext_?或者根本没有?哈.. 我不太确定我是否了解所有这些托管对象的内容。

非常感谢。汤姆