[英]Convert Raw Data “AnyObject?” to NSData or String
我在最近几天一直被困在这里,并在Stackoverflow和网络上阅读了无数的帖子,但我仍然有点失落。 (顺便说一下,我在Swift中是一个新手)。
我有以下代码
Alamofire.request(.GET, "url") .response { (request, response, data, error) in printIn(data)}
这会在控制台中打印出一长串数字,这是完美的,正是我需要的。
但是我现在想迭代这些并获取某个索引的数字,所以想将它转换为字符串或NSData。
我尝试了很多不同的方法,但还没有找到如何做到这一点,如果有人能帮助我,我将非常感激。
我试过用
Alamofire.request(.GET, "url")
.responseString(encoding: NSASCIIStringEncoding) { (request, response, data, error) -> Void in
println(data)
}
但这只能打印出乱七八糟的混乱。
非常感谢
克里斯
你说:
但是我现在想迭代这些并获取某个索引的数字,所以想将它转换为字符串或
NSData
。
使用response
, data
参数实际上是 NSData
。 因此,只需将变量转换为适当的类型,您就应该开展业务,例如:
Alamofire.request(.GET, urlString)
.response { (request, response, data, error) in
if let data = data as? NSData {
for i in 0 ..< data.length {
var byte: UInt8!
data.getBytes(&byte, range: NSMakeRange(i, 1))
print(String(format: "%02x ", byte))
}
}
}
在我的示例循环中,只记录byte
变量的十六进制字符串表示,但它是一个数值,您可以使用它来执行任何您想要的操作。
数据是NSData和ascii编码(在你的第二个例子中)
let s = NSString(data: data, encoding: NSASCIIStringEncoding)
在第一种情况下,您没有指定编码,因此它默认为NSUTF8
let s = NSString(data: data, encoding: NSUTF8StringEncoding)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.