iOS 8 + Swift中的setHTTPBody

Mic*_*sky 5 objective-c swift xcode6 ios8

我正在努力将我为客户编写的自定义Objective-C网络管理器转换为Swift,作为学习语言和熟悉文档的一种方式.

NSData *postData = [NSJSONSerialization dataWithJSONObject:userData options:0 error:&error];

[request setHTTPBody:postData];
Run Code Online (Sandbox Code Playgroud)

但是,当我打开关于setHTTPBody的苹果文档时,它说它已经不再支持7.1了?

在斯威夫特,我有

/*Other Code*/

var request = NSMutableURLRequest(URL: sampleUrl) 
request.addValue("Content-Type", forHTTPHeaderField: "application/json")
Run Code Online (Sandbox Code Playgroud)

我会假设一个功能

request.setHTTPBody("data")
Run Code Online (Sandbox Code Playgroud)

然而 - 这似乎并非如此......我错过了什么?或者是否有一个新的功能来取代这个被弃用的功能?

Enr*_*tyo 3

在 Swift 中,一些类不再具有 getter 和 setter 方法,因为我们可以将它们设置为在用户设置或获取属性时执行某些方法,而无需使用 setter 和 getter。

因此,在本例中,您可以通过直接访问 HTTPBody 来设置它:

request.HTTPBody = postData
Run Code Online (Sandbox Code Playgroud)