鉴于以下游乐场:
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和source for URLSession
,我不确定是什么导致了这一变化。它打破了我的一个测试,我正在摸不着为什么这个打破了。有任何想法吗?
编辑:我得到==
只是测试指针和URLSessionConfiguration
复制初始化。我更感兴趣的是它在Xcode 9.4.1中评估为true,这似乎是不正确的。事实上它在Xcode 10中发生了变化。
URLSession
正在复制配置对象而不是仅存储它。因为它是一个类,所以如果两个引用是同一个对象,==
将只返回true,这在复制后不再是这种情况。