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: Negm-Awad Amin <email@hidden>
- Date: Wed, 6 Aug 2008 16:41:45 +0200
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 attempt to modify the collection during enumeration, an exception
is raised.
Amin
BTW: This looks like a memory leak …
--
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
_______________________________________________
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