> On Aug 19, 2016, at 3:46 PM, Quincey Morris 
> <quinceymor...@rivergatesoftware.com> wrote:
> 
> On Aug 19, 2016, at 10:53 , Charles Srstka <cocoa...@charlessoft.com 
> <mailto:cocoa...@charlessoft.com>> wrote:
>> 
>> [NSArray array] is a synonym for [[[NSArray alloc] init] autorelease].
> 
> (along with other similar comments in other responses)
> 
> To be pedantic, it’s *implemented* as [[[NSArray alloc] init] autorelease], 
> but the lack of an API contract to that effect means that “synonym” isn’t 
> quite accurate.
> 
> My point is that Apple might revisit the implementation of NSArray at any 
> time (in these Swiftian days, stranger things have happened), and choose to 
> write it with full ARC compatibility, which means there might not be any 
> autorelease when invoked from ARC client code, since ARC can optimize the 
> code when it handles both ends of the invocation.

Swift typically just calls the initializer if it’s there, so the convenience 
initializers like +[NSArray array] are really only relevant to Objective-C 
code. For that reason, I doubt they’d change unless Apple did something crazy 
like rewrite the entire frameworks in Swift, in which case they’d probably go 
away. So for the foreseeable future, the difference is that +array returns an 
autoreleased object, meaning that in ARC code, +new is the better choice.

Charles

_______________________________________________

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

Reply via email to