On Mon, Aug 11, 2008 at 8:22 PM, Ken Ferry <[EMAIL PROTECTED]> wrote: > On Mon, Aug 11, 2008 at 7:15 PM, Mike <[EMAIL PROTECTED]> wrote: >> Ken Thomases wrote: >>> >>> On Aug 10, 2008, at 2:05 AM, Mike wrote: >>> >>>> How does one go about copying an object specified by id when one doesn't >>>> know the object type and the object does not implement NSCopying protocol? >>> >>> The short answer is: you don't. If an object's class doesn't implement >>> NSCopying, then there are no known semantics for what making a copy of it >>> should mean. Just to pick a random example, what might it mean to copy an >>> NSTask object? Or an NSThread? I could keep going, of course. >>> >>> However, I'm having a hard time imagining under what circumstances you >>> would want to do this. If you don't know what kind of object you have, and >>> the object itself doesn't know how to make a copy, why do you want (or think >>> you need) to make a copy? >>> >>> Cheers, >>> Ken >> >> Because, I have a case where I need to create my own object for storing >> key/value pairs in a sorted array. Since NSDictionary, etc. doesn't allow >> sorted elements in the dictionary, I have to define my own - but in an array >> instead of a dictionary. >> >> Both the key and value for each key in the items in my array can be of any >> object type (id). The sorted key/value paid array class has to be able to >> make copies of the items in the arrays when it goes to sort them. > > I was with you up until here. Why do you need to make copies? > > You cannot have it both ways. Either you work on anything, or you > require copyable objects. It really doesn't make sense to copy an > arbitrary object. > > However, I'm starting to wonder if your definition of 'copy' is not > syncing up with what we're thinking of.. > > Forgive me if this was already clear to you, but it's perfectly fine to say > NSString *foo = @"abc"; > NSString *bar = foo; > > Now foo and bar refer to the same object. >
That is, you can copy a pointer to any object as much as you want, you just cannot copy the object. -Ken _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) 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: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]