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

Reply via email to