0

NSValueTransformer用于转换一个值。但是,如果转换需要更多上下文信息怎么办?例如,如何NSValueTransformer访问 nib 中的其他对象,或访问视图控制器?这不就是NSValueTransformer要使用的吗?

例如,我想将文本视图的属性字符串绑定到员工的姓名,使用值转换器根据员工的部门格式化姓名。

到目前为止,我的解决方案是只实现一个新employeeNameForDisplay属性左右,完全跳过值转换器。

如果这真的是最好的解决方案,我很难理解价值转换器的价值。他们真的有这么有限吗?

4

1 回答 1

1

文件报价...

NSValueTransformer是一个抽象类,Cocoa 绑定技术使用它来将值从一种表示形式转换为另一种表示形式。

...这是一个非常简单的类,它在不同表示之间转换值。有时我确实将它与 Cocoa Bindings 一起使用,但我确实将它与 CoreData 一起使用,因为我需要更好(更小,更快,...)表示底层 sqlite 存储。所以,即使你不能用它来实现你的目标,这门课对我们来说也是有价值的。

我也会像你一样解决。新物业连同...

+ (NSSet *)keyPathsForValuesAffectingEmployeeNameForDisplay:(NSString *)key {
    return [NSSet setWithArray:@[ @"employeeName", @"employeeDepartment" ]];
}
于 2014-03-14T12:33:29.560 回答