作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
内存分配可能会失败,但我认为 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 中的原生 Swift Foundation 框架。
最佳答案
来自 swift-users 列表:
“Swift 关于内存分配失败的政策是,如果无法处理固定大小的对象分配,则认为这是运行时失败。OTOH,可以分配任意大量变量的 API 应该是失败的。NSData 下降进入后一类。” -克里斯
关于Swift:为什么 init?(length length: Int) NSMutableData 的初始化程序会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36621854/
我是一名优秀的程序员,十分优秀!