Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I convert NSMutableArray to NSArray?

How do I convert NSMutableArray to NSArray in objective-c?

like image 883
marcy Avatar asked Nov 20 '09 07:11

marcy


People also ask

How do I create an NSArray in Objective C?

Creating NSArray Objects Using Array Literals In addition to the provided initializers, such as initWithObjects: , you can create an NSArray object using an array literal. In Objective-C, the compiler generates code that makes an underlying call to the init(objects:count:) method.

What is NSArray?

NSArray is Objective-C's general-purpose array type. It represents an ordered collection of objects. NSArray is immutable, so we cannot dynamically add or remove items. Its mutable counterpart, NSMutableArray, will be discussed in the second part of this tutorial.

What is NSMutableArray?

The NSMutableArray class declares the programmatic interface to objects that manage a modifiable array of objects. This class adds insertion and deletion operations to the basic array-handling behavior inherited from NSArray .

What is the difference between NSArray and array in Swift?

Array is a struct, therefore it is a value type in Swift. NSArray is an immutable Objective C class, therefore it is a reference type in Swift and it is bridged to Array<AnyObject> . NSMutableArray is the mutable subclass of NSArray . Because foo changes the local value of a and bar changes the reference.


1 Answers

NSArray *array = [mutableArray copy]; 

Copy makes immutable copies. This is quite useful because Apple can make various optimizations. For example sending copy to a immutable array only retains the object and returns self.

If you don't use garbage collection or ARC remember that -copy retains the object.

like image 149
Georg Schölly Avatar answered Oct 27 '22 01:10

Georg Schölly