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"]; } }