[swift-users] NSMutableData's init?(length length: Int) initializer

Chris Lattner clattner at apple.com
Fri Apr 15 01:16:11 CDT 2016


> On Apr 14, 2016, at 10:45 AM, soyer via swift-users <swift-users at swift.org> wrote:
> 
> Hello Guys, Girls,
> 
> Do you know why is the init?(length length: Int) NSMutableData's initializer failable?
> The memory allocation can fail, but I think Swift doesn't handle that cases. (it is not a real issue in a modern OS)
> The code on github calls a non failable initializer.
> https://github.com/apple/swift-corelibs-foundation/blob/master/Foundation/NSData.swift#L904

Swift’s policy on memory allocation failure is that fixed-size object allocation is considered to be a runtime failure if it cannot be handled.  OTOH, APIs that can take a variable and arbitrarily large amount to allocate should be failable.  NSData falls into the later category.

-Chris


More information about the swift-users mailing list