Swift 中的 NSURLRequest 和 URLRequest 有什么区别?
What is the difference between NSURLRequest and URLRequest in Swift?
我正在查看一些 swift 文档,我看到 NSURLRequest 和 URLRequest 实际上是一样的,增加了使用 NSURLRequest 的花絮:
when you need reference semantics or other Foundation-specific behavior.
一个比另一个快吗?在什么情况下应该使用一个?
Swift 在 Foundation 中有一个特定的模式,用 Swift 构造包装一些 NS 类。这方面的示例包括字符串 (NSString)、数组 (NSArray)、JSONSerialization (NSJSONSerialization)、日期 (NSDate)、...
尽可能使用包装器,仅在需要时才下降到 NS 版本。在这种情况下,请使用 URLRequest 除非你 运行 遇到问题。
URLRequest
是 NSURLRequest
的叠加层,因此您认为它们本质上是同一件事是正确的。它们 不同 类 但它们旨在提供相同的功能。 NS 版本更像是遗留的 API,它是 Objective-C 的遗留物,非 NS 版本是 'swifty' 版本。
这里引用苹果自己的文档NSURLRequest:
The Swift overlay to the Foundation framework provides the URLRequest structure, which bridges to the NSURLRequest class and its mutable > subclass,
NSMutableURLRequest. For more information about value types, see Working with Cocoa Frameworks in Using Swift with Cocoa and Objective-C (Swift 4).
此外,这是当他们决定从一些 类 基金会中删除 NS 时的实际 swift 提议。
https://github.com/apple/swift-evolution/blob/master/proposals/0086-drop-foundation-ns.md
本质上,如果您使用 Objective-C,则您使用的是 NS 版本。如果您使用的是 Swift,您希望默认使用非 NS 版本,并且仅在尝试桥接到 Objective-C 或特定库要求您使用 NS 版本时才使用 NS 版本.
我正在查看一些 swift 文档,我看到 NSURLRequest 和 URLRequest 实际上是一样的,增加了使用 NSURLRequest 的花絮:
when you need reference semantics or other Foundation-specific behavior.
一个比另一个快吗?在什么情况下应该使用一个?
Swift 在 Foundation 中有一个特定的模式,用 Swift 构造包装一些 NS 类。这方面的示例包括字符串 (NSString)、数组 (NSArray)、JSONSerialization (NSJSONSerialization)、日期 (NSDate)、...
尽可能使用包装器,仅在需要时才下降到 NS 版本。在这种情况下,请使用 URLRequest 除非你 运行 遇到问题。
URLRequest
是 NSURLRequest
的叠加层,因此您认为它们本质上是同一件事是正确的。它们 不同 类 但它们旨在提供相同的功能。 NS 版本更像是遗留的 API,它是 Objective-C 的遗留物,非 NS 版本是 'swifty' 版本。
这里引用苹果自己的文档NSURLRequest:
The Swift overlay to the Foundation framework provides the URLRequest structure, which bridges to the NSURLRequest class and its mutable > subclass, NSMutableURLRequest. For more information about value types, see Working with Cocoa Frameworks in Using Swift with Cocoa and Objective-C (Swift 4).
此外,这是当他们决定从一些 类 基金会中删除 NS 时的实际 swift 提议。
https://github.com/apple/swift-evolution/blob/master/proposals/0086-drop-foundation-ns.md
本质上,如果您使用 Objective-C,则您使用的是 NS 版本。如果您使用的是 Swift,您希望默认使用非 NS 版本,并且仅在尝试桥接到 Objective-C 或特定库要求您使用 NS 版本时才使用 NS 版本.