我无法通过绑定的tableview和arrayController将数值保存到coredata。我已经更改了代码以返回硬编码值,当我尝试编辑数字列时它不会崩溃,但不会保留硬编码值:
#import "StringToNumberTransformer.h"
@implementation StringToNumberTransformer
+ (Class)transformedValueClass { return [NSNumber class]; }
+ (BOOL)allowsReverseTransformation { return YES; }
- (id)transformedValue:(id)value {
// return (value == nil) ? nil : [NSString stringWithFormat:@"%i", [value shortValue ]];
//return (value == nil) ? nil : NSStringFromClass([value class]);
return @"1";
}
- (id)reverseTransformedValue:(id)value {
// return [value numberFromString:[value stringValue]];
return [NSNumber numberWithInt:2];
}
@end
以下是xib设置的链接! http://tinypic.com/r/2nty41s/5! 任何人都可以对此有所了解吗?
非常感谢
答案 0 :(得分:0)
正如自定义价值变形金刚(Value Transformer Programming Guide)
的文档中所述值转换器子类必须实现transformedValueClass 类方法。此方法返回该对象的类 transformedValue:方法返回。
因此,您的transformedValueClass
会返回NSNumber
的类,但您的transformedValue:
方法会返回NSString
类型的实例
由于您正在将从 NSString
转换为 NSNumber
,我想您会想要交换transformedValue:
的实现{1}}和reverseTransformedValue:
方法。