我正在使用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)
错误在此行中显示为
“无法将类型为'string'的值转换为预期的参数类型
nsdata”
谁能告诉我为什么会抛出此错误,我该怎么做才能纠正代码?
最佳答案
[jsonstring dataUsingEncoding:NSUTF8StringEncoding]];
是方法-[NSString dataUsingEncoding:]
。String(data: jsonstring, encoding: NSUTF8StringEncoding)
是方法-[NSString initWithData:encoding:]
。
这不是等效的代码。尝试调用jsonstring.dataUsingEncoding(NSUTF8StringEncoding)
。