ios - 在范围内找不到“isUniquelyReferencedNonObjC”
问题描述
import Foundation
final class Ref<T> {
var val : T
init(_ v : T) {val = v}
}
struct Box<T> {
var ref : Ref<T>
init(_ x : T) { ref = Ref(x) }
var value: T {
get { return ref.val }
set {
if (!isUniquelyReferencedNonObjC(&ref)) {
ref = Ref(newValue)
return
}
ref.val = newValue
}
}
}
为什么上面的代码编译时没有出现“Cannot find 'isUniquelyReferencedNonObjC' in scope”错误?
解决方案
看起来 isUniquelyReferencedNonObjC 在 swift 5 中已被弃用
您必须使用 isKnownUniquelyReferenced(_:) 进行写时复制优化。
Apple docs为您的案例提供了代码示例。
推荐阅读
- arrays - 如何在bash中嵌套变量和循环子变量
- python - 在 Python 中为 OpenCV BoundryBox 设置自定义 RoI
- ruby-on-rails - 在 Rails 中控制公共文件响应代码
- c# - 与 ef 对话和可定制的 asp.net 类库
- google-app-engine - AppEngine 日志不接受上下文
- https - Gitbook API 返回 HTTP 代码 429
- python - Python Pandas:高效地为切片赋值
- python-3.x - 从 BaseOperator 到 PythonOperator 的气流或将参数传递给 BaseOperator
- java - 当我开始 ant build 并继续编码时会发生什么,我的更改(运行 ant build 之后)是否被忽略?
- android - 在第二个实时数据之后观察实时数据