2009-12-31 2 views
0

Я создаю приложение в RubyCocoa и у меня есть этот код:NULL в приложении RubyCocoa?

fileContents = OSX::NSAttributedString.alloc.initWithData_options_documentAttributes_error_(data, null, null, outError) 

Это дает мне эту ошибку:

2009-12-31 19:42:54.317 Ruby Text[3791:a0f] MyDocument#readFromData_ofType_error_: OSX::OCMessageSendException: Can't get Objective-C method signature for selector 'null' of receiver #<MyDocument:0x2aaa8a class='MyDocument' id=0x2770e20> 
    /Library/Frameworks/RubyCocoa.framework/Resources/ruby/osx/objc/oc_wrapper.rb:50:in `ocm_send' 
    /Library/Frameworks/RubyCocoa.framework/Resources/ruby/osx/objc/oc_wrapper.rb:50:in `method_missing' 
    /Users/myname/Documents/Ruby Text/build/Debug/Ruby Text.app/Contents/Resources/MyDocument.rb:44:in `readFromData_ofType_error_' 
    /Users/myname/Documents/Ruby Text/build/Debug/Ruby Text.app/Contents/Resources/rb_main.rb:22:in `NSApplicationMain' 
    /Users/myname/Documents/Ruby Text/build/Debug/Ruby Text.app/Contents/Resources/rb_main.rb:22 
2009-12-31 19:42:54.320 Ruby Text[3791:a0f] HIToolbox: ignoring exception 'Can't get Objective-C method signature for selector 'null' of receiver #<MyDocument:0x2aaa8a class='MyDocument' id=0x2770e20>' that raised inside Carbon event dispatch 
(
    0 CoreFoundation      0x97b0940a __raiseError + 410 
    1 libobjc.A.dylib      0x943ff509 objc_exception_throw + 56 
    2 CoreFoundation      0x97b53a21 -[NSException raise] + 17 
    3 RubyCocoa       0x00010ddc rbobj_call_ruby + 764 
    4 RubyCocoa       0x0000dbda install_ovmix_methods + 2218 
    5 libffi.dylib      0x97bceb9f ffi_closure_SYSV_inner + 177 
    6 libffi.dylib      0x97bce9c2 ffi_closure_SYSV + 34 
    7 AppKit        0x9135aac0 -[NSDocument readFromURL:ofType:error:] + 743 
    8 AppKit        0x91247955 -[NSDocument initWithContentsOfURL:ofType:error:] + 311 
    9 AppKit        0x912474f9 -[NSDocumentController makeDocumentWithContentsOfURL:ofType:error:] + 383 
    10 AppKit        0x912472b1 -[NSDocumentController openDocumentWithContentsOfURL:display:error:] + 886 
    11 AppKit        0x912457bf -[NSDocumentController _openDocumentsWithContentsOfURLs:display:presentErrors:] + 169 
    12 AppKit        0x9135ee87 -[NSDocumentController openDocument:] + 352 
    13 AppKit        0x9103af86 -[NSApplication sendAction:to:from:] + 112 
    14 AppKit        0x9103ae39 -[NSMenuItem _corePerformAction] + 435 
    15 AppKit        0x9103ab2a -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] + 174 
    16 AppKit        0x9103aa16 -[NSMenu performActionForItemAtIndex:] + 65 
    17 AppKit        0x9103a9c9 -[NSMenu _internalPerformActionForItemAtIndex:] + 50 
    18 AppKit        0x9103a92f -[NSMenuItem _internalPerformActionThroughMenuIfPossible] + 97 
    19 AppKit        0x9103a873 -[NSCarbonMenuImpl _carbonCommandProcessEvent:handlerCallRef:] + 336 
    20 AppKit        0x9102ef79 NSSLMMenuEventHandler + 404 
    21 HIToolbox       0x97719e29 _ZL23DispatchEventToHandlersP14EventTargetRecP14OpaqueEventRefP14HandlerCallRec + 1567 
    22 HIToolbox       0x977190f0 _ZL30SendEventToEventTargetInternalP14OpaqueEventRefP20OpaqueEventTargetRefP14HandlerCallRec + 411 
    23 HIToolbox       0x9773b981 SendEventToEventTarget + 52 
    24 HIToolbox       0x97767e3b _ZL18SendHICommandEventmPK9HICommandmmhPKvP20OpaqueEventTargetRefS5_PP14OpaqueEventRef + 448 
    25 HIToolbox       0x9778cb20 SendMenuCommandWithContextAndModifiers + 66 
    26 HIToolbox       0x9778cad7 SendMenuItemSelectedEvent + 121 
    27 HIToolbox       0x9778c9d3 _ZL19FinishMenuSelectionP13SelectionDataP10MenuResultS2_ + 152 
    28 HIToolbox       0x9775c212 _ZL14MenuSelectCoreP8MenuData5PointdmPP13OpaqueMenuRefPt + 440 
    29 HIToolbox       0x9775b9a9 _HandleMenuSelection2 + 465 
    30 HIToolbox       0x9775b7c7 _HandleMenuSelection + 53 
    31 AppKit        0x910284ba _NSHandleCarbonMenuEvent + 285 
    32 AppKit        0x90ffd076 _DPSNextEvent + 2304 
    33 AppKit        0x90ffc306 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 156 
    34 AppKit        0x90fbe49f -[NSApplication run] + 821 
    35 AppKit        0x90fb6535 NSApplicationMain + 574 
    36 libffi.dylib      0x97bce91d ffi_call_SYSV + 29 
    37 libffi.dylib      0x97bcec49 ffi_call + 138 
    38 RubyCocoa       0x0001c94e rb_ffi_dispatch + 2558 
    39 RubyCocoa       0x0001554c find_bs_method + 1020 
    40 libruby.1.dylib      0x00044dfa rb_rescue + 800 
    41 libruby.1.dylib      0x0004fac0 rb_proc_call + 1452 
    42 libruby.1.dylib      0x000507db rb_proc_call + 4807 
    43 libruby.1.dylib      0x0004bb0c rb_provided + 7165 
    44 libruby.1.dylib      0x0005b83d rb_eval_string + 262 
    45 libruby.1.dylib      0x0005b86e ruby_exec + 22 
    46 libruby.1.dylib      0x0005b89a ruby_run + 42 
    47 RubyCocoa       0x00012931 RBApplicationMain + 337 
    48 Ruby Text       0x00001f4d main + 47 
    49 Ruby Text       0x00001ef2 start + 54 
) 

Я попробовал все (включая ноль, OSX :: NULL, OSX: : nil, null(), NULL и т. д.).

Может ли кто-нибудь мне помочь? Благодарю.

ответ

1

В RubyCocoa, метод вернет возвращаемое значение метода, а затем какие-либо аргументы двойных косвенного предоставления (source):

fileContents, docAttributes, error = OSX::NSAttributedString.alloc.initWithData_options_documentAttributes_error_(data, options) 

В MacRuby, вам нужно создать указатель на объект и передать методу (source):

error = Pointer.new_with_type(‘@’) 
NSFileManager.defaultManager.attributesOfItemAtPath path, error:error