问题
When I make an NSArray
using +[NSArray arrayWithObjects:]
, does it copy those objects? If I release the objects after adding them to the array, will I run into problems?
回答1:
No, it doesn't copy them. It retains them. Yes, you can safely release the objects after adding them to the array.
The docs, as always, spell this out very clearly:
Arrays maintain strong references to their contents—in a managed memory environment, each object receives a retain message before its id is added to the array and a release message when it is removed from the array or when the array is deallocated. If you want a collection with different object ownership semantics, consider using CFArray Reference, NSPointerArray, or NSHashTable instead.
来源:https://stackoverflow.com/questions/1258735/does-nsarray-copy-objects