On 27 Apr, 2014, at 5:06 pm, John McCall <rjmcc...@apple.com> wrote:
> On Apr 27, 2014, at 2:00 AM, Dave <d...@looktowindward.com> wrote: >> A long time back, I remember reading something about the way in which copy >> and mutableCopy are implemented. I think basically it said that: >> >> someObject = [someOtherObject copy]; >> >> or >> >> someObject = [someOtherObject mutableCopy]; >> >> Wouldn’t necessarily allocate any extra data storage. I’ve been searching >> for it to refresh my memory, but I can’t see to find it anywhere. Does >> anyone know if this document or something like it exists somewhere? > > I don’t know if there’s a document, and like a lot of things with ObjC the > actual guarantees are pretty weak, but implementations of these methods on > immutable types have been turning into essentially “return [self retain];" > for quite some time. But that’s when the actual dynamic type is > guaranteed-immutable, e.g. something constructed as an NSArray, not just > something that’s immutable by convention, e.g. an NSMutableArray that you’re > passing around as an NSArray. > There are indeed no guarantees. It is often the case that an immutable object 'copies' itself by just returning itself but it doesn't have to, it can make a new object if it wants. I can't think of a case where a mutable object could copy itself without allocating extra storage so in the mutableCopy case, this almost definitely isn't correct. _______________________________________________ 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com