[MacRuby-devel] Conforming to a protocol

Martijn Walraven martijn at martijnwalraven.com
Wed Nov 17 00:26:09 PST 2010


I actually tried this, but the problem seems to be that Protocol is not a true class. So if I try to do anything with the protocol parameter from MacRuby, I get an error:

*** NSInvocation: warning: object 0x7fff71192488 of class 'Protocol' does not implement methodSignatureForSelector: -- trouble ahead
*** NSInvocation: warning: object 0x7fff71192488 of class 'Protocol' does not implement doesNotRecognizeSelector: -- abort

Even just comparing it to another protocol object using protocol == Protocol.protocolWithName('...') leads to the same result.

Any ideas as to how this could be made to work?

On Nov 16, 2010, at 19:59 , Eloy Duran wrote:

> I don't have an example of a class that uses conformsToProtocol: on the delegate, so I can't give you a code example, but I would try to override the conformsToProtocol: class and instance methods and return true for those you support.
> 
> On 15 nov 2010, at 00:15, Martijn Walraven wrote:
> 
>> Hi,
>> 
>> I was wondering if there is any way to formally indicate a MacRuby class conforms to an Objective-C protocol. I encountered some code that uses conformsToProtocol: instead of respondsToSelector: as a check before invoking delegate methods, and the only way I could get a delegate written in MacRuby to work was to create an Objective-C class with the same name and specify the required protocols in the interface declaration there.
>> 
>> Thanks,
>> 
>> Martijn
>> _______________________________________________
>> MacRuby-devel mailing list
>> MacRuby-devel at lists.macosforge.org
>> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
> 
> _______________________________________________
> MacRuby-devel mailing list
> MacRuby-devel at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel



More information about the MacRuby-devel mailing list