iOS Developer Library — Prerelease

Developer

Foundation Framework Reference NSMutableCopying Protocol Reference

Options
Deployment Target:

On This Page
Language:

NSMutableCopying

The NSMutableCopying protocol declares a method for providing mutable copies of an object. Only classes that define an “immutable vs. mutable” distinction should adopt this protocol. Classes that don’t define such a distinction should adopt NSCopying instead.

NSMutableCopying declares one method, mutableCopyWithZone:, but mutable copying is commonly invoked with the convenience method mutableCopy. The mutableCopy method is defined for all NSObjects and simply invokes mutableCopyWithZone: with the default zone.

If a subclass inherits NSMutableCopying from its superclass and declares additional instance variables, the subclass has to override mutableCopyWithZone: to properly handle its own instance variables, invoking the superclass’s implementation first.

  • Returns a new instance that’s a mutable copy of the receiver.

    Declaration

    Swift

    func mutableCopyWithZone(_ zone: NSZone) -> AnyObject

    Objective-C

    - (id nonnull)mutableCopyWithZone:(NSZone * nullable)zone

    Parameters

    zone

    The zone from which memory is allocated for the new instance. If zone is NULL, the new instance is allocated from the default zone, which is returned by NSDefaultMallocZone.

    Discussion

    The returned object is implicitly retained by the sender, which is responsible for releasing it. The copy returned is mutable whether the original is mutable or not.

    Availability

    Available in iOS 2.0 and later.

    See Also

    – copyWithZone: (NSCopying protocol)
    – mutableCopy (NSObject class)