1 首先屬性(attribute)選擇使用transformable格式。spa
2 新建類ArrayDataTransformer ,繼承於NSValueTransformer。code
3 .m文件實現一些方法(主要是爲了把NSArray 轉成NSData ,以及反轉。因此,實際上是經過NSData的形式來存儲的)orm
#import "ArrayDataTransformer.h" @implementation ArrayDataTransformer + (BOOL)allowsReverseTransformation { return YES; } + (Class)transformedValueClass { return [NSData class]; } - (id)transformedValue:(id)value { NSArray *array=(NSArray *)value; NSData *dataValue=[NSKeyedArchiver archivedDataWithRootObject:array]; return dataValue; } - (id)reverseTransformedValue:(id)value { NSData *data=(NSData *)value; NSArray *array=[NSKeyedUnarchiver unarchiveObjectWithData:data]; return array; } @end
4.點擊Model中,使用transformable的實體(Entity)屬性,看右邊的屬性(attribute),有個Name項,填入:ArrayDataTransformer繼承
5.在你的實體(Entity)對應的 NSManagedObject子類裏,實現下面方法,爲了初始化的時候,就能夠轉換了。it
+ (void)initialize { if (self == [EMenpai class]) { ArrayDataTransformer *transFormer=[[ArrayDataTransformer alloc]init]; [NSValueTransformer setValueTransformer:transFormer forName:@"ArrayDataTransformer"]; } }