いくつかの属性と「エイリアス」という名前の対多関係を持つエンティティ タグ (コア データ内) があります。
私の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、0x10053db10 の maxCount 0 の関係障害
関係のためのある種のCoreDataプロキシのようです...
次に、NSValueTransformer のサブクラスを作成します。
@interface tagAliasesToStringTransformer : NSValueTransformer
+ (Class)transformedValueClass;
+ (BOOL)allowsReverseTransformation;
- (id)transformedValue:(id)value;
@end
バインディングでValue Transformerとして使用しようとしました。しかし、私は私の実装で迷っています:
@implementation tagAliasesToStringTransformer
+ (Class)transformedValueClass {
return [NSString class];
}
+ (BOOL)allowsReverseTransformation {
return NO;
}
- (id)transformedValue:(id)value {
if (value == nil) return nil;
...
}
@end
transformValue: メソッドでは、値はクラス '_NSFaultingMutableSet' であり、エイリアスのセット/配列または有用なものを取得する方法がわかりません。
目標は、各エイリアスの連結の NSString を構築することです。何かのようなもの:
aTag : エイリアス1 エイリアス2 エイリアス3 ...