Re: 3 obj-c/cocoa beginner q's
Re: 3 obj-c/cocoa beginner q's
- Subject: Re: 3 obj-c/cocoa beginner q's
- From: Marcel Weiher <email@hidden>
- Date: Tue, 25 Mar 2003 15:41:09 +0100
On Tuesday, March 25, 2003, at 02:55 Uhr, Steve Bird wrote:
On Tuesday, March 25, 2003, at 08:30 AM, Ben Dougall wrote:
_____________________________________________________
1.
this is a bit of code from a book i'm following at the moment. it
feels like it might possibly be an inefficient way of doing things.
but then i could easily be wrong:
for (i = 0; i < [myArray count]; i++) {
....
....
}
doesn't this mean that the myArray object will get messaged for every
for loop execution? in other words if the array has 100 elements
myArray is going to get messaged a 100 times? or doesn't that matter?
wouldn't defining an int to hold [myArray count] before going into
the for loop, and using that int in the for loop arguments, therefore
only messaging myArray once, be a better way to do that? or not?
--- A reasonable question, but the [myArray count] is messaged only
once, because that's the way C for loops work. Read the details on
FOR loops - the arguments are evaluated only once to determine
parameters, then the loop is executed.
That turns out not to be the case. The middle and last statements in a
for() loop are executed once per loop iteration (the middle at the top,
checked, the last at the bottom).
In order to achieve this, you would write it like this:
for ( i=0, max=[myArray count]; i<max; i++ ) {
...
}
Assuming you have declared i and max earlier. ( C99 also lets you do
the declaration inside the statement).
Marcel
--
Marcel Weiher Metaobject Software Technologies
email@hidden www.metaobject.com
Metaprogramming for the Graphic Arts. HOM, IDEAs, MetaAd etc.
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.