我在 Swift 中使用 Xcode 7.2 编写了这段代码 ..
func silentPostData(serverName: String, serverport serverPort: String, serverurl serverURL: String, parameters: [NSObject : AnyObject], urldata urlData: NSData) {
let persist = Persistence()
var finalURl = "https://\(serverName):\(serverPort)/\(serverURL)"
for key : String in parameters {
finalURL = finalURL.stringByAppendingString(key)
finalURL = finalURL.stringByAppendingString("=")
finalURL = finalURL.stringByAppendingString((parameters[key] as! String))
finalURL = finalURL.stringByAppendingString("&")
}
}
我在“for key : String in parameters {”行中收到错误(如标题所述)。基于之前的回答'(NSObject, AnyObject)' is not convertible to 'String' ,我尝试将其转换为 NSString ,但没有成功。所以有人知道如何将 [NSObject:AnyObject] 转换为字符串吗?提前谢谢你。
最佳答案
正如评论所说,它是一个字典,你可以通过这样做来获取字符串:
parameters.keys.flatMap { $0 as? String }.forEach {
finalURL = finalURL.stringByAppendingString($0)
finalURL = finalURL.stringByAppendingString("=")
finalURL = finalURL.stringByAppendingString(parameters[$0] as? String ?? "")
finalURL = finalURL.stringByAppendingString("&")
}
关于ios - 无法转换类型 [NSObject : AnyObject] to string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36125527/