给出以下游乐场:
import Foundation
let config = URLSessionConfiguration.default
let session = URLSession(configuration: config)
let eq = config == session.configuration
如果您在Xcode 9.4.1中运行游乐场,则eq
的计算结果为true。在Xcode 10.0中,eq
的计算结果为false。我查看了Xcode 10 release notes和URLSession
的{{3}},但不确定是什么导致了更改。它破坏了我的一项测试,而我为这种失败的原因ing之以鼻。有什么想法吗?
编辑:我得到==
只是在测试指针,而URLSessionConfiguration
是在初始化时复制的。我对它在Xcode 9.4.1中评估为true的事实更感兴趣,这似乎是不正确的。而且它在Xcode 10中会发生变化。
答案 0 :(得分:1)
URLSession
正在复制配置对象,而不仅仅是存储它。由于它是一个类,因此==
仅在两个引用都指向同一个对象时才返回true,复制后不再是这种情况。