Re: Resend: array = [NSArray new] or array = [NSArray array]?
Re: Resend: array = [NSArray new] or array = [NSArray array]?
- Subject: Re: Resend: array = [NSArray new] or array = [NSArray array]?
- From: Charles Srstka <email@hidden>
- Date: Fri, 19 Aug 2016 12:53:34 -0500
> On Aug 16, 2016, at 9:42 AM, Alex Zavatone <email@hidden> wrote:
>
> I sent this out this morning but it got eaten, so this is a resend. Sorry if it gets to some of you twice.
>
>
>
> Yes, I know about literals, but I have a different question here.
>
>
> Is this safe?
>
> I have seen this in some code in our codebase:
> array = [NSArray new];
>
> I'm familiar with using the public method from the NSArray header and what the docs say to use:
> or array = [NSArray array];
>
> Is there any risk to using [NSArray new] to init an array instead of [NSArray array]??
>
> I'm surprised to see this being used in our codebase and would like to make sure we are not destroying the universe by using it.
They’re both perfectly fine. [NSArray new] is just a synonym for [[NSArray alloc] init], whereas [NSArray array] is a synonym for [[[NSArray alloc] init] autorelease].
In ARC, I actually prefer +new, as there’s no difference UI-wise, and it keeps the array out of the autorelease pool.
Charles
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden