最好的方法(正如 Cocoafan 指出的那样)是使用Value Transformers。值转换器允许您将模型使用的对象类型转换为适合视图的类型。这是一个非常简单的字符串/数组转换器,它允许您将数据存储为逗号分隔的字符串,但会将其来回转换为字符串数组。
@interface StringArrayTransformer: NSValueTransformer {}
@end
@implementation StringArrayTransformer
+ (Class)transformedValueClass { return [NSString class]; }
+ (BOOL)allowsReverseTransformation { return YES; }
- (id)transformedValue:(id)value {
NSString *string = (NSString*) value;
return [string componentsSeparatedByString:@", "];
}
-(id)reverseTransformedValue:(id)value {
NSArray *array = (NSArray*)value;
return [array componentsJoinedByString:@", "];
}
@end
如果您为 NSTokenField 使用绑定,那么要使用此转换器,只需在 Interface Builder 中选择 NSTokenField,然后在右侧的 Bindings Inspector 中,对于 Value 绑定,将“Value Transformer”设置StringArrayTransformer
为如下所示。