Re: remove elements during the iteration on NSMutableDictionary
Re: remove elements during the iteration on NSMutableDictionary
- Subject: Re: remove elements during the iteration on NSMutableDictionary
- From: "Wayne Shao" <email@hidden>
- Date: Wed, 6 Aug 2008 07:48:36 -0700
On Wed, Aug 6, 2008 at 7:41 AM, Negm-Awad Amin <email@hidden>wrote:
>
> Am Mi,06.08.2008 um 16:27 schrieb Wayne Shao:
>
> Hi
>
> Please see the question in the comments of the following code.
>
> NSMutableDictionary* aDictionary = (initialized with some objects)
>
> for (id theKey in aDictionary) {
> id anObject = [[aDictionary objectForKey:theKey] retain];
>
> [aDictionary removeObjectForKey:theKey];
> // Question: will this removal break or corrupt the loop of enumerating the
> elements?
>
> [anObject someMessage];
> }
>
> in java, Iterators allow the caller to remove elements from the underlying
> collection during the iteration. is there similar semantics in objective-c?
>
>
> http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Articles/chapter_8_section_1.html#/
> /apple_ref/doc/uid/TP30001163-CH18-SW1
>
> Enumeration is "safe"—the enumerator has a mutation guard so that *if you
> a**ttempt to modify the collection during enumeration, an exception is
> raised*.
>
Oh. thanks for the info. Is there an alternative method to remove during a
loop? (besides the option to remove elements outside of the loop).
>
> Amin
>
> BTW: This looks like a memory leak …
>
fixed?
for (id theKey in aDictionary) {
id anObject = [[aDictionary objectForKey:theKey] retain];
[aDictionary removeObjectForKey:theKey];
// Question: will this removal break or corrupt the loop of enumerating the
elements?
[anObject someMessage];
[anObject release];
}
>
>
> --
> Wayne Shao
> _______________________________________________
>
> Cocoa-dev mailing list (email@hidden)
>
> 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:
>
> This email sent to email@hidden
>
>
> Amin Negm-Awad
> email@hidden
>
>
>
>
>
--
Wayne Shao
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden