内存分配可能会失败,但我认为Swift不会处理这种情况。 github上的代码调用了一个不可用的初始化程序
public convenience init?(length: Int) {
let memory = malloc(length)
self.init(bytes: memory, length: length, copy: false) { buffer, amount in
free(buffer)
}
}
编辑: 代码来自Swift 3中的native-Swift Foundation框架。
答案 0 :(得分:1)
来自swift-users列表:
" Swift关于内存分配失败的政策是,如果无法处理固定大小的对象分配,则认为它是运行时失败。 OTOH,可以采用可变且任意大量分配的API应该是可用的。 NSData属于后一类。" -Chris