创建 NSManagedObject 属性值的副本

Posted

技术标签:

【中文标题】创建 NSManagedObject 属性值的副本【英文标题】:Creating a copy of attribute value of NSManagedObject 【发布时间】:2014-10-14 12:26:07 【问题描述】:

我需要创建 NSManagedObject listlistID 属性的副本/保存/复制。该方案首先从本地存储中删除列表,然后我向服务器发送请求以使用它们的 ID 删除 list 对象,但是当我从本地存储中删除对象时,我无法访问对象 ID。以下是代码

List *list = (List*)[self.fetchedResultsController objectAtIndexPath:indexPath];

NSString *listID = [list.listID stringValue];
[listsToDelete addObject:listID];

[context deleteObject:[self.fetchedResultsController objectAtIndexPath:indexPath]];

我试图将对象 id 字符串值存储在一个数组中以供以后使用,但无济于事,因为如果稍后我访问 listToDelete 它是零。为什么我需要这样做才能实现这一目标?

【问题讨论】:

【参考方案1】:

根据您展示的有限代码,我想到了一些事情:

1) 您是否初始化了您的 listsToDelete?我想那是NSMutableArray 类型。您需要正确初始化它。

IE。 NSMutableArray* listsToDelete = [[NSMutableArray alloc] init];

2) 在将list.listID 添加到数组之前,您是否尝试过记录它的值?也许值是nil 开始?

【讨论】:

是的,这是NSMutableArray 的初始化问题。谢谢。

以上是关于创建 NSManagedObject 属性值的副本的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp NSManagedObject类别,用于在另一个上下文中创建深层副本

NSManagedObject 的副本

如何有效地从 NSManagedObject 中获取属性的所有有效值?

每次创建新对象时迭代 NSManagedObject 的属性

无论当前上下文状态如何,如何获取 NSManagedObject 的持久存储副本

保存时检测对 NSManagedObject 的更改