コアデータ エンティティと、エンティティにバインドされたアレイ コントローラにバインドされた編集可能なテーブルビューに行を表示するココア ウィンドウを (コーディングせずに) 作成しました。テーブルには NSNumber 列が 1 つあります。これは、テーブルビューが文字列として保存しようとする列形式であるため、編集時にカスタム値トランスフォーマーがないとクラッシュします。
そのため、その列にリンクしたカスタム値トランスフォーマーを作成しましたが、別のエラーが発生しました。これが私のコードです:
#import "StringToNumberTransformer.h"
@implementation StringToNumberTransformer
+ (Class)transformedValueClass { return [NSNumber class]; }
+ (BOOL)allowsReverseTransformation { return NO; }
- (id)transformedValue:(id)value {
NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber * _menuId = [f numberFromString:[value stringValue]];
return _menuId;
}
@end
列をクリックするとすぐに表示されるエラーは次のとおりです。
[EntityName stringValue]: unrecognized selector sent to instance 0x100137de0
0 CoreFoundation 0x00007fff876dbb06 __exceptionPreprocess + 198
1 libobjc.A.dylib 0x00007fff836593f0 objc_exception_throw + 43
2 CoreFoundation 0x00007fff8777240a -[NSObject(NSObject) doesNotRecognizeSelector:] + 186
3 CoreFoundation 0x00007fff876ca02e ___forwarding___ + 414
4 CoreFoundation 0x00007fff876c9e18 _CF_forwarding_prep_0 + 232
5 ClickerData 0x0000000100001439 -[StringToNumberTransformer transformedValue:] + 153
6 AppKit 0x00007fff8a556612 -[NSBinder valueForBinding:atIndex:resolveMarkersToPlaceholders:] + 528
7 AppKit 0x00007fff8a6bb947 -[NSEditableBinder editableStateAtIndex:] + 80
8 AppKit 0x00007fff8a83bc2b -[NSTableBinder tableView:shouldEditTableColumn:row:] + 168
9 AppKit 0x00007fff8a94f2b7 -[_NSBindingAdaptor tableView:shouldEditTableColumn:row:] + 157
10 AppKit 0x00007fff8a849cd1 -[NSTableView _userCanEditTableColumn:row:] + 65
11 AppKit 0x00007fff8a849dad -[NSTableView _userCanSelectAndEditTableColumn:row:] + 97
12 AppKit 0x00007fff8a851ec8 -[NSTableView _shouldEditColumn:row:withEvent:] + 121
13 AppKit 0x00007fff8a854861 -[NSTableView mouseDown:] + 5858
14 AppKit 0x00007fff8a44250e -[NSWindow sendEvent:] + 6853
15 AppKit 0x00007fff8a43e644 -[NSApplication sendEvent:] + 5761
16 AppKit 0x00007fff8a35421a -[NSApplication run] + 636
17 AppKit 0x00007fff8a2f8bd6 NSApplicationMain + 869
18 ClickerData 0x0000000100002bf2 main + 34
19 libdyld.dylib 0x00007fff842be7e1 start + 0
20 ??? 0x0000000000000003 0x0 + 3
)
ここで何が間違っていますか?数字を入力してエンティティに保存できるようにしたいだけです。どうもありがとう