ios - 跨 SDK 版本的 URLSessionConfiguration 等同性

标签 ios swift macos foundation nsurlsessionconfiguration

给定以下 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 notessource对于 URLSession,我不确定是什么导致了更改。它打破了我的一个测试,我正在摸不着头脑为什么会这样。有什么想法吗?

编辑:我知道 == 只是在测试指针,URLSessionConfiguration 在初始化时被复制。我更感兴趣的是它在 Xcode 9.4.1 中的计算结果为真,这似乎是不正确的。它在 Xcode 10 中发生了变化。

最佳答案

URLSession 正在复制配置对象,而不是仅仅存储它。由于它是一个类,== 只有在两个引用指向同一个对象时才会返回 true,复制后不再是这种情况。

关于ios - 跨 SDK 版本的 URLSessionConfiguration 等同性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55148321/

相关文章:

ios - 从NSNumber获取日期

ios - XCode 升级后出错,ios 8.1,spritekit 和 swift,对象构建 'NSData(contentsOfFile:options:error:)'

ios - 如何在 Swift 中使用 XIB 文件初始化/实例化自定义 UIView 类

macos - 来自 CA_DEBUG_TRANSACTIONS 的更长回溯

ios - 隐藏或隐藏 UIButton 顺序更改的最快方法

ios - 在 SFSafariViewController 上设置完成按钮颜色

ios - 在 Xcode 7 的新 UI 自动化上模拟摇动手势的快速方法是什么?

ios - 在 xcode 中找不到 Stripe.h 文件

swift - 如何正确地向 NSTableView 添加一行

macos - 如何检查 Mac OS 中是否安装了特定的应用程序/软件