• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Where is NSList?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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.


References: 
 >Where is NSList? (From: Tim Conkling <email@hidden>)
 >Re: Where is NSList? (From: Shawn Erickson <email@hidden>)
 >Re: Where is NSList? (From: Tim Conkling <email@hidden>)

  • Prev by Date: Re: Where is NSList?
  • Next by Date: Re: Where is NSList?
  • Previous by thread: Re: Where is NSList?
  • Next by thread: Re: Where is NSList?
  • Index(es):
    • Date
    • Thread