2011-11-16 41 views
0

我想将记录保存在数组中并从CoreData中删除它们。我曾尝试使用NSCopying,但似乎copyWithZone不能在NSManagedObject上工作。我真的陷入困境,任何帮助将不胜感激。保存CoreData结果数组,即使它从CoreData中删除后

+0

您需要读取值,将值存储在数组中,并摆脱核心数据。我从来不喜欢核心数据的原因之一是因为学习另一个系统是一件很痛苦的事情 –

+0

是的,我正在考虑复制某些字符串中的值并将它们存储在数组中。 CoreData真的很痛苦。感谢您的回复。 – Saleh

+0

你能解释一下你想做什么吗?你想短时间或永久保存它们吗?核心数据并不是一件痛苦的事情,当你觉得它很简单。顺便说一句,你的问题似乎不是核心数据问题。 – shannoga

回答

1

将NSManagedObject的所有字段值复制到字典中,并将这些字典存储在数组中。

我已经放在一起了一个小例程,你可以在一个NSMutableObject类中实现,这个类可以用来获取它。 (请注意,我现在不在Mac计算机上,并且代码可能存在拼写错误,但除此之外,它应该可以正常工作)。

-(NSDictionary*)retrieveAsDict { 
    NSMutableDictionary *aux = [[NSMutableDictionary alloc] init]; 
    NSDictionary *attributes = [self attributesByName]; 
    NSArray *attributeNames = [attributes allKeys]; 

    for (NSString *key in attributeNames) { 
    [aux setValue:[self valueForKey:key] forKey:key]; 
    } 

    NSDictionary *ret = [NSDictionary dictionaryWithDictionary:aux]; 

    // Uncomment this if not using ARC 
    //[aux release]; 

    return(ret); 
} 

如果您需要进一步说明,请务必发表评论,我会尽快回复。

+0

谢谢你,我知道如何从你的代码中解决这个问题。 – Saleh