我有一个实体标签(在核心数据中),它有一些属性和一个名为“别名”的一对多关系。
我的 ArrayController 在 Xcode 中“绑定”到:
Parameters->Managed Object Context = File's Owner.managedObjectContext
它适用于所有属性,其他列显示正确的值。
在一个专栏中,我尝试“显示”这种多对多关系。如果我天真地这样做并将我的 NSTableColumn 的值绑定到我的 ArrayController.arrangedObjects.aliases (就像所有其他属性一样),我会在屏幕上看到这个:
()、名称别名、isOptional 1、isTransient 0、实体标记、renamingIdentifier 别名、验证谓词 ()、警告 ()、versionHashModifier (null)、目标实体 TagAlias、inverseRelationship 标记、minCount 0、maxCount 0 on 0x10053db10 的关系错误
它似乎是某种关系的 CoreData 代理......
然后我构建了一个 NSValueTransformer 的子类:
@interface tagAliasesToStringTransformer : NSValueTransformer
+ (Class)transformedValueClass;
+ (BOOL)allowsReverseTransformation;
- (id)transformedValue:(id)value;
@end
并尝试将其用作绑定中的值转换器。但我在我的实现中迷失了:
@implementation tagAliasesToStringTransformer
+ (Class)transformedValueClass {
return [NSString class];
}
+ (BOOL)allowsReverseTransformation {
return NO;
}
- (id)transformedValue:(id)value {
if (value == nil) return nil;
...
}
@end
在方法transformedValue: 中,值属于“_NSFaultingMutableSet”类,我不知道如何获取别名的集合/数组或任何有用的东西。
目标是构建每个别名连接的 NSString。就像是:
aTag : 别名 1 别名 2 别名 3 ...