2017-06-27 42 views
0

我期待通過一些快速的文件,我看到的NSURLRequest和URLRequest實際上是相同的,與添加的珍聞說的NSURLRequest用於:Swift中的NSURLRequest和URLRequest有什麼區別?

當你需要引用語義或其他特定基金的行爲。

是一個比另一個更快,在什麼情況下應該用於其他?

+2

如果您使用的是Swift,則應該使用'URLRequest',因爲它是使用Swift API設計指南製作的。大多數Swift API現在都使用'URLRequest',所以如果你使用'NSURLRequest',你必須對'URLRequest'進行類型轉換 –

回答

4

URLRequestNSURLRequest的覆蓋圖,因此您認爲它們本質上是相同的東西是正確的。他們不同的類,但它們旨在提供相同的功能。 NS版本更像是一個遺留API,它是Objective-C的延期,非NS版本是'swifty'版本。

下面是來自蘋果自己的文檔上NSURLRequest報價:

雨燕疊加Foundation框架提供的URLRequest結構,橋樑到的NSURLRequest類及其可變>的子類, NSMutableURLRequest。有關值類型的更多信息,請參見Using Swift with Cocoa and Objective-C (Swift 4)中的Working with Cocoa Frameworks

此外,這是從他們決定從基金會的許多類放棄NS的實際快速建議。

https://github.com/apple/swift-evolution/blob/master/proposals/0086-drop-foundation-ns.md

事實上,如果你正在使用的Objective-C使用NS版本。如果你正在使用Swift,你希望默認使用非NS版本,並且當你試圖連接到Objective-C或者特定的庫需要你使用NS版本時,只使用NS版本。

0

Swift在用Swift構造包裝一些NS類的基礎上有一定的模式。示例包括字符串(NSString),數組(NSArray),JSONSerialization(NSJSONSerialization),日期(NSDate),...

只要有可能,只需要時使用包裝下拉到NS版本。在這種情況下,除非遇到問題,否則請使用URLRequest。