I have had the same problem with NSImages, large loops and large
amounts of data. What I do is create one NSImage and then create
NSBitmapImageReps inside the loop (instead of NSImages) and switch
them in and out of the NSImage (via removeRepresentations and
addRepresentations) This seems to work.
It is a hassle in that you can't use the convience function of
initWithContentsOfFile:
On 9/28/06, Shawn Erickson <email@hidden> wrote:
On 9/28/06, Alexander Cohen <email@hidden> wrote:
> Hi, i have a large loop that looks like this:
>
>
> for ( i = 0; i < count; i++)
> {
> NSAutoreleasePool* pool =
[[NSAutoreleasePool alloc] init];
>
> NSImage* img = [[NSImage alloc]
initWithContentsOfFile:self];
> if (!img) {
> [pool release];
> continue;
> }
>
> if (img) [img release];
> img = nil;
>
> [pool release];
> pool = nil;
> }
>
> Every time around the loop, memry is going up drastically and never
> comes down. Am i missing something? Seems to me like the memory
> should stay pretty much the same. ANy ideas?
What "memory" goes up? How are determining that memory usage is
increasing?
Also the logic in you loop is rather over kill IMHO...
for ( i = 0; i < count; i++)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSImage *img = [[[NSImage alloc] initWithContentsOfFile:self]
autorelease];
if ([img isValid]) { // or just check for not nil ... note a
message to nil is a no-op)
... do your stuff here ...
}
[pool release];
}
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/bdjohnson01%
40gmail.com
This email sent to email@hidden
--
----
Bruce Johnson
email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/alexcohen%
40toomuchspace.com
This email sent to email@hidden