Objective c 如何将上下文对象传递给NSValueTransformer
Objective c 如何将上下文对象传递给NSValueTransformer,objective-c,nib,nsvaluetransformer,Objective C,Nib,Nsvaluetransformer,NSValueTransformer用于转换值。但是如果转换需要更多的上下文信息呢?例如,NSValueTransformer如何访问nib中的其他对象,或访问视图控制器?这难道不是NSValueTransformer要使用的吗 例如,我想将文本视图的属性字符串绑定到员工的姓名,使用值转换器根据员工的部门设置姓名格式 到目前为止,我的解决方案是只实现一个新的employeeNameForDisplay属性,完全跳过值转换器 如果这真的是最好的解决方案,我很难理解值转换器的价值。他们真的这么有限吗
NSValueTransformer
用于转换值。但是如果转换需要更多的上下文信息呢?例如,NSValueTransformer
如何访问nib中的其他对象,或访问视图控制器?这难道不是NSValueTransformer
要使用的吗
例如,我想将文本视图的属性字符串绑定到员工的姓名,使用值转换器根据员工的部门设置姓名格式
到目前为止,我的解决方案是只实现一个新的employeeNameForDisplay
属性,完全跳过值转换器
如果这真的是最好的解决方案,我很难理解值转换器的价值。他们真的这么有限吗?Doc quote
NSValueTransformer
是一个抽象类,Cocoa绑定技术使用它将值从一个表示转换为另一个表示
。。。这是一个非常简单的类,它在不同的表示形式之间转换值。有时我确实会将它用于Cocoa绑定,但我会将它大量用于CoreData,因为我需要更好(更小、更快,…)的底层sqlite存储表示。所以,这门课对我们有价值,即使你不能用它实现你的目标
我也会像你一样解决。新的财产连同
+ (NSSet *)keyPathsForValuesAffectingEmployeeNameForDisplay:(NSString *)key {
return [NSSet setWithArray:@[ @"employeeName", @"employeeDepartment" ]];
}