[Rubycocoa-devel 540] Re: Can't get Objective-C method signature for selector

アーカイブの一覧に戻る

Laurent Sansonetti lsans****@apple*****
Tue Jan 2 21:56:30 JST 2007


Hey, it was easier than expected, I just committed a fix there (with  
some new test cases). If you can check it out, it would be great (I  
didn't test it on Tiger yet :-)).

Laurent

On Jan 2, 2007, at 12:55 AM, Laurent Sansonetti wrote:

> Hi Nicholas,
>
> Thanks for the report, Chris also found the same problem I think. This
> is a regression introduced by the FFI support, I have a local fix
> right now but it's not fully complete, I expect to check in it in a
> couple of days.
>
> Laurent
>
> On Dec 29, 2006, at 8:56 AM, lc3b****@mac***** wrote:
>
>> Hi.
>>
>> (This is my first time on the list so I apologize if I am not
>> following the "standard" way of asking.)
>>
>> For fun I made a RubyCocoa version of the RaiseManager from the Cocoa
>> Programming book (2nd edition). This is different from the one in /
>> Developer/Examples/RubyCocoa/RubyRaiseMan because it uses bindings
>> and also has support for undo.
>>
>> The code (http://blog.vazexqi.com/files/RubyRaiseMan.tgz) works fine
>> with rubycocoa-0.5.0.1 but fails with the rubycocoa-unstable(svn-
>> revision 1312).  It builds fine but while trying to insert a new
>> employee I get this error:
>>
>> 2006-12-29 01:34:15.313 RubyRaiseMan[15052] *** NSRunLoop ignoring
>> exception 'NSUndoManager#removeObjectFromEmployeesAtIndex: - Can't
>> get Objective-C method signature for selector
>> 'removeObjectFromEmployeesAtIndex:' of receiver #<OSX::NSUndoManager:
>> 0x2f680e class='NSUndoManager' id=0x16006420>' that raised during
>> posting of delayed perform with target 11fc640 and selector
>> 'invokeWithTarget:'
>>
>> And this is the method that caused the error:
>>
>> [MyDocument.rb: 63-74]
>>
>>    def insertObject_inEmployeesAtIndex(person, index)
>>      OSX::NSLog("insertObject called")
>>      undo_manager = self.undoManager
>>      (undo_manager.prepareWithInvocationTarget
>> (self)).removeObjectFromEmployeesAtIndex(index)
>>
>>      unless undo_manager.isUndoing?
>>        undo_manager.setActionName("Insert Person")
>>      end
>>
>>      self.startObservingPerson(person)
>>      @employees.insert(index, person)
>>    end
>>
>>
>> removeObjectFromEmployeesAtIndex has been defined somewhere below
>> that method. If I just do the insert (and also remove) without the
>> registering with NSUndoManager it works.
>>
>> I scanned through the ChangeLog but was not able to determine which
>> change broke the application. Any help would be appreciated.
>>
>> Incidentally, there are other problems with the application with
>> application as well: preferences not updating, crashing on edit but I
>> hope solving the problem with NSUndoManager will yield some insight
>> to them.
>>
>> Thanks.
>>
>>
>> --
>> Nicholas Chen
>>
>>
>> _______________________________________________
>> Rubycocoa-devel mailing list
>> Rubyc****@lists*****
>> http://lists.sourceforge.jp/mailman/listinfo/rubycocoa-devel
>
> _______________________________________________
> Rubycocoa-devel mailing list
> Rubyc****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/rubycocoa-devel




More information about the Rubycocoa-devel mailing list
アーカイブの一覧に戻る