Re: Where is NSList?
Re: Where is NSList?
- Subject: Re: Where is NSList?
- From: Jim Hagen <email@hidden>
- Date: Tue, 27 Jul 2004 15:50:42 -0700
Maybe *I'm* missing something, but it sounds like you want an
NSDictionary where the dictionary keys are an attribute of the stored
objects. Of course, you'd need unique keys, but I suppose you could use
'hash' to get a unique NSNumber...
On Jul 27, 2004, at 3:35 PM, Tim Conkling wrote:
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.
_______________________________________________
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.