给定以下 Playground :
import Foundation
let config = URLSessionConfiguration.default
let session = URLSession(configuration: config)
let eq = config == session.configuration
如果您在 Xcode 9.4.1 中运行 playground,eq
的计算结果为 true。在 Xcode 10.0 中,eq
的计算结果为 false。我看了一下 Xcode 10 release notes和 source对于 URLSession
,我不确定是什么导致了更改。它打破了我的一个测试,我正在摸不着头脑为什么会这样。有什么想法吗?
编辑:我知道 ==
只是在测试指针,URLSessionConfiguration
在初始化时被复制。我更感兴趣的是它在 Xcode 9.4.1 中的计算结果为真,这似乎是不正确的。它在 Xcode 10 中发生了变化。
最佳答案
URLSession
正在复制配置对象,而不是仅仅存储它。由于它是一个类,==
只有在两个引用指向同一个对象时才会返回 true,复制后不再是这种情况。
关于ios - 跨 SDK 版本的 URLSessionConfiguration 等同性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55148321/