0

コアデータ エンティティと、エンティティにバインドされたアレイ コントローラにバインドされた編集可能なテーブルビューに行を表示するココア ウィンドウを (コーディングせずに) 作成しました。テーブルには 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
)

ここで何が間違っていますか?数字を入力してエンティティに保存できるようにしたいだけです。どうもありがとう

4

0 に答える 0