Re: Is it possible for a subclass to set the ivar of its base class?
On Sep 24, 2016, at 12:15 , Patrick J. Collinswrote: > > There's no way to do this without duplicating tons of their code? You can’t add a method (setOtherWut) to the base class in the subproject? That would be easier than mucking with the run-time. ___ Do not post admin requests to the list. They will be ignored. Objc-language mailing list (Objc-language@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/objc-language/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Is it possible for a subclass to set the ivar of its base class?
On Sep 24, 2016, at 08:11 , Patrick J. Collinswrote: > >@implementation Lol { >int _wut; >} > >-(void)setWut:(int)wut { >_wut = wut; >// side effects I do not want. >} How do you know this *is* the implementation in the base class? How do you know there *is* a private variable called “_wut”, or its type, or what value it actually contains, or if there are any other variables that must be set consistently whenever the value of the “wut” property changes? I don’t see how you can safely make your change without seeing the source code of the base class, and it you have access to the source code you’d be better off making a custom library. ___ Do not post admin requests to the list. They will be ignored. Objc-language mailing list (Objc-language@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/objc-language/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Is it possible for a subclass to set the ivar of its base class?
I am trying to change the behavior of a library by subclassing one of the files, but am finding this is not working because I can't access (change) one of the internal instance variables. To illustrate my problem: Rofl *rofl = [[Rofl alloc] init]; [rofl otherSetWut:123]; [rofl speak]; @implementation Lol { int _wut; } -(void)setWut:(int)wut { _wut = wut; // side effects I do not want. } -(void)speak { NSLog(@"so wut up? %i", _wut); } @end @implementation Rofl { int _wut; } -(void)otherSetWut:(int)wut { _wut = wut; } @end When I run this, I get 0 instead of 123. Is there a way I can get access to the _wut ivar in the base class so that I will How can I make it so that I will get the desired 123 output? Thanks! Patrick J. Collins http://collinatorstudios.com ___ Do not post admin requests to the list. They will be ignored. Objc-language mailing list (Objc-language@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/objc-language/archive%40mail-archive.com This email sent to arch...@mail-archive.com