[MacRuby-devel] How do I subclass Obj-C classes in MacRuby?
Terry
tvmoore at mac.com
Fri May 7 02:15:38 PDT 2010
I agree on that point of course they are different calls .... but from a ruby point of view WHY isn't init with no args the same as initialize with no args....
So I can live with it but my preference is with ruby initialize... this is macRuby right?
Terry
On 7/05/2010, at 6:09 PM, Thibault Martin-Lagardette wrote:
> Hi!
>
> I totally agree that it is a little confusing. But #new an #new(owner) are two different methods, especially in Obj-C.
> Calling A.new(arg) cannot call -init, since -init doesn't take any argument, so it will call any initializer method that takes one argument :-).
> This is why:
>
> class A; def initialize; end; end; # Will never be called with A.new, because -init will be called instead
> class A; def initialize(str); end; end; # Will be called with A.new(str), because -init cannot be called
>
> It simply depends on how you define your initilizer method :-)
>
> --
> Thibault Martin-Lagardette
>
>
>
> On May 6, 2010, at 21:54, Terry Moore wrote:
>
>> This is only true if you follow objc init I think... for example...
>>
>>
>> I came across this problem with NSWindowController and it took me a while to figure out.
>>
>> class PasswordController < NSWindowController
>> def initialize
>> initWithWindowNibName("Password") ##FAIL Never called! init called instead
>> end
>>
>> class PrefController < NSWindowController
>>
>> def initialize(owner)
>> @owner = owner
>> initWithWindowNibName("Preferences")
>> end
>> end
>>
>>
>> The first example fails and so I finally got that I needed the init method to make the window appear but I couldn't figure out why the second option worked.
>>
>> Must have been a long day but clearly if designate an initialize with a param init is bypased...
>>
>> so if I take the
>> class A <String
>> def initialize(b)
>> super
>> end
>> end
>> example and do A.new("hi there") gives
>>
>> initialize
>> => "hi there"
>>
>> so what is going on? I think there might need to be some clarity.....
>>
>> Terry
>>
>>
>> _______________________________________________
>> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-devel/attachments/20100507/b30fcc05/attachment.html>
More information about the MacRuby-devel
mailing list