What I would do use a class method and pass the two arrays as parameters.
On 1/12/11 2:03 PM, "cocoa-dev-requ...@lists.apple.com" <cocoa-dev-requ...@lists.apple.com> wrote: > Yes, you can, but... don't forget that in -computeVar3... self is not fully > initialized. If you have all control on self it can be without problems, but > Objective-C is an OO language. Consider this : > > - Your class is ClassA with it's init method. > - Then you have ClassB, subclass of ClassA. ClassB override -init cleanly > (call super in the beginning etc.) > - Then ClassC, subclass of ClassB. ClassC override -computeVar3. > And then the problems can begin, in -[ClassC computeVar3] self is not fully > initialize from the point of view of ClassA, but the initialization has not > even began from the point of view of ClassB and ClassC. I think it's a break > of encapsulation principle. > > If you want to put the code outside -init only for code readability, just use > a plain C function. > > Frédéric > > Le 12 janv. 2011 à 12:41, Luc Van Bogaert a écrit : > >> Hi, >> >> I have a question about how to design a initializer mehod. >> >> I have defined a class with three instance variables. Two of them are arrays >> and their value can be initialized straightforward in the initializer method, >> but the value of the third instance variable is the result of a complex >> algorithm, based on the contents of the two arrays. >> >> I would like to implement that algorithm in a seperate method, instead of >> writing it directly in the initializer. Is that OK, and could I then message >> "self" in the initializer like: >> >> - (id) init >> { >> self = [super init]; >> if (self) { >> var1 = ...; >> var2 = ...; >> var3 = [self computerVar3With:var1:var2]; >> } >> return self; >> } >> >> Or is it better to write the algorithm directly as part of the initializer? >> Thanks, >> >> -- >> Luc Van Bogaert >> luc.van.boga...@me.com >> >> _______________________________________________ >> >> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) >> >> Please do not post admin requests or moderator comments to the list. >> Contact the moderators at cocoa-dev-admins(at)lists.apple.com >> >> Help/Unsubscribe/Update your Subscription: >> http://lists.apple.com/mailman/options/cocoa-dev/ftestuz%40bluewin.ch >> >> This email sent to ftes...@bluewin.ch -- Gordon Apple Ed4U Little Rock, AR _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com