レコードを配列に保存し、CoreData から削除したいと考えています。NSCopying を使用してみましたが、NSManagedObject では copyWithZone が機能しないようです。私は本当に立ち往生しています。どんな助けでも大歓迎です。
1 に答える
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);
}
さらに明確にする必要がある場合は、必ずコメントしてください。すぐに回答します。
于 2011-11-16T13:49:37.257 に答える