我正在使用 Xcode 7.2 和 swift 2.0,并将一段 Objective-C 代码转换为 swift 。 Objective-c 中的代码是
NSString *jsonstring = [[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding];
[requests setHTTPBody:[jsonstring dataUsingEncoding:NSUTF8StringEncoding]];
我在调用函数时将 urlData 作为参数传递。这在 obj-c 中工作得很好..但是当我将其转换为 swift 2.0 时
let jsonstring = String(data: urlData, encoding: NSUTF8StringEncoding)!
requests.HTTPBody = String(data: jsonstring, encoding: NSUTF8StringEncoding)
此行中的错误显示为
"cannot convert value of type 'string' to expected argument type nsdata"
任何人都可以帮助告诉我为什么会抛出此错误以及我应该如何纠正代码?
最佳答案
[jsonstring dataUsingEncoding:NSUTF8StringEncoding]];
是方法 -[NSString dataUsingEncoding:]
。
String(data: jsonstring,encoding: NSUTF8StringEncoding)
是方法 -[NSString initWithData:encoding:]
。
这不是等效代码。尝试改为调用 jsonstring.dataUsingEncoding(NSUTF8StringEncoding)
。
关于ios - 在swift中设置http方法时可以将字符串作为数据传递吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36077287/