On Jun 12, 2011, at 2:44 AM, Bing Li wrote:

> The NSArray, nodes, is created by xmlDoc. Since the method is not the owner,
> nodes should be released here.

No, you don’t need to release ‘nodes' since you didn’t allocate or copy it.

> When a large number of XML is received, the
> receiver's memory is increased slowly.

Are you calling that method as part of a loop? If so, try allocating an 
autorelease pool at the top of the loop and draining it at the end. Basically, 
autoreleased objects don’t go away till the topmost autorelease pool drains, 
and if you’re doing a whole lot of stuff before returning to the event loop, 
you need to set up your own autorelease pool or everything will pile up till 
you finally finish.

In general it looks something like:

        while (…) {
                NSAutoreleasePool* pool = [NSAutoreleasePool new];
                … do stuff …
                [pool drain];
        }

‘pool’ will collect all the references that get autoreleased during ‘do stuff’, 
and then release them when it’s drained.

—Jens

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________

Cocoa-dev mailing list ([email protected])

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 [email protected]

Reply via email to