Re: Where is NSList?
Re: Where is NSList?
- Subject: Re: Where is NSList?
- From: Tim Conkling <email@hidden>
- Date: Tue, 27 Jul 2004 18:35:26 -0400
Sorry, I think I was pretty unclear in my original post.
I'm looking for a container that returns some information that uniquely
identifies each object added to it. This information is called an
iterator in the STL, but it's not used exclusively for iterating over a
container of objects, and I'm not actually looking to iterate over a
list of objects here. These iterators allow for bidirectional reference
between the list and the objects in the list -- i.e., the list knows
which objects it contains; and each object, if it chooses to retain the
iterator returned to it by the list it is added to, knows exactly where
it is contained in the list.
This is very useful, because it allows for operations like deletion
(which take linear time in a container like an NSArray) to be done in
constant time (in a list container), if you have retained the iterator
for the object to be deleted. Importantly, these iterators remain valid
when the container is modified.
An array is good for quick access via index, but object lookup is slow.
If I have an object that I know is contained in an NSArray, and I want
to delete it from that array, there is no quick method of doing so --
the operation is necessarily performed in linear time, AFAIK.
Again, I'm new to Cocoa, so I may be missing something, but I have
already looked at the documentation for NSArray and NSEnumerator, and
they don't seem to provide the functionality I'm looking for. But I
certainly apologize if I'm missing something obvious.
Thanks,
Tim
On Jul 27, 2004, at 5:45 PM, Shawn Erickson wrote:
On Jul 27, 2004, at 2:39 PM, Shawn Erickson wrote:
On Jul 27, 2004, at 2:40 PM, Tim Conkling wrote:
I'm surprised that Cocoa/CoreFoundation doesn't contain some sort of
iterable (iteratable?) container. Either I'm missing something, or
this is a rather large hole in the framework. I'm looking for a
container that returns iterators of some sort for each object stored
in it, so that each object knows exactly where it is in the
container (making for easy deletion, given the object to be
deleted).
How do people handle this sort of thing in Cocoa? I'm used to STL's
map, list, et al, which use these sorts of iterators.
Did you note NSEmuerator[1]?
Consider review the following conceptual documentation on the
collections provided in Cocoa...
<http://developer.apple.com/documentation/Cocoa/Conceptual/
Collections/index.html>
-Shawn
[1]
<http://developer.apple.com/documentation/Cocoa/Reference/Foundation/
ObjC_classic/Classes/NSEnumerator.html#//apple_ref/occ/cl/
NSEnumerator>
Also note NSIndexSet which is utilized by (but not exclusive to)
NSArrayController for various things related to tracking object
indexes in arrays, etc.
<http://developer.apple.com/documentation/Cocoa/Reference/Foundation/
ObjC_classic/Classes/NSIndexSet.html#//apple_ref/occ/cl/NSIndexSet>
_______________________________________________
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.